:root{
  --bg:#f5f5f2;--surface:#fff;--surface-2:#ecece7;--text:#151515;--muted:#676761;--line:#d9d9d2;
  --accent:#173b32;--accent-2:#d9ebdd;--danger:#b42318;--success:#176b3a;--warning:#9a5b00;
  --radius:24px;--shadow:0 18px 50px rgba(20,24,22,.08);--max:1180px
}
*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--bg)}body{margin:0;background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}img,svg{max-width:100%;height:auto}button{color:inherit}.skip-link{position:absolute;left:12px;top:-80px;z-index:1000;padding:12px 16px;background:#fff;border:2px solid var(--text);border-radius:12px}.skip-link:focus{top:12px}.container{width:min(var(--max),calc(100% - 40px));margin-inline:auto}.site-header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(16px);border-bottom:1px solid color-mix(in srgb,var(--line) 65%,transparent)}.nav-shell{min-height:76px;display:flex;align-items:center;gap:26px}.brand{display:inline-flex;align-items:center;gap:11px;font-weight:800;letter-spacing:-.03em;white-space:nowrap}.brand img{width:38px;height:38px;border-radius:13px}.brand-copy{display:grid}.brand-copy small{font-size:10px;color:var(--muted);font-weight:600;letter-spacing:.05em;text-transform:uppercase}.site-nav{display:flex;align-items:center;gap:4px;margin-left:auto}.site-nav a{padding:10px 12px;border-radius:12px;font-size:14px;font-weight:650;color:#343431}.site-nav a:hover,.site-nav a[aria-current="page"]{background:var(--surface-2);color:var(--text)}.nav-actions{display:flex;align-items:center;gap:9px}.nav-toggle{display:none;width:44px;height:44px;border:1px solid var(--line);border-radius:13px;background:var(--surface);align-items:center;justify-content:center}.nav-toggle svg{width:22px}.btn{min-height:44px;padding:0 18px;border:1px solid var(--line);border-radius:14px;background:var(--surface);display:inline-flex;align-items:center;justify-content:center;gap:9px;font-weight:750;cursor:pointer;transition:transform .16s ease,background .16s ease}.btn:hover{transform:translateY(-1px)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.soft{background:var(--accent-2);border-color:transparent;color:var(--accent)}.btn.ghost{background:transparent}.btn.small{min-height:38px;padding:0 14px;border-radius:12px;font-size:13px}.btn.full{width:100%}.hero{padding:78px 0 56px}.hero-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(340px,.9fr);gap:48px;align-items:center}.kicker{display:inline-flex;align-items:center;gap:8px;color:var(--accent);font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.kicker::before{content:"";width:28px;height:2px;background:currentColor}.hero h1{max-width:820px;margin:17px 0 20px;font-size:clamp(44px,6.5vw,82px);line-height:.98;letter-spacing:-.065em}.hero p{max-width:700px;margin:0;color:var(--muted);font-size:clamp(17px,2vw,20px);line-height:1.65}.hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}.hero-note{margin-top:22px;display:flex;align-items:center;gap:12px;color:var(--muted);font-size:13px}.hero-note strong{color:var(--text)}.orbit-art{position:relative;min-height:460px;border:1px solid var(--line);border-radius:34px;overflow:hidden;background:linear-gradient(145deg,#173b32,#0b211c);box-shadow:var(--shadow)}.orbit-ring{position:absolute;border:1px solid rgba(255,255,255,.22);border-radius:50%}.ring-a{width:390px;height:390px;right:-75px;top:-38px}.ring-b{width:250px;height:250px;right:24px;top:32px}.ring-c{width:620px;height:620px;left:-390px;bottom:-380px}.orbit-card{position:absolute;left:34px;right:34px;bottom:34px;padding:24px;border:1px solid rgba(255,255,255,.18);border-radius:22px;background:rgba(255,255,255,.10);color:#fff;backdrop-filter:blur(12px)}.orbit-card small{display:block;color:#b9d5c8;text-transform:uppercase;letter-spacing:.08em;font-weight:800}.orbit-card strong{display:block;margin:8px 0 15px;font-size:25px;letter-spacing:-.04em}.orbit-steps{display:flex;gap:7px}.orbit-steps i{height:7px;flex:1;border-radius:99px;background:rgba(255,255,255,.24)}.orbit-steps i.done{background:#d9ebdd}.metric-strip{padding:0 0 28px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:22px;background:var(--surface);overflow:hidden}.metric{padding:22px 24px;border-right:1px solid var(--line)}.metric:last-child{border-right:0}.metric strong{display:block;font-size:28px;letter-spacing:-.05em}.metric span{display:block;margin-top:4px;color:var(--muted);font-size:13px}.section{padding:68px 0}.section.alt{background:var(--surface)}.section-head{display:flex;justify-content:space-between;gap:28px;align-items:end;margin-bottom:28px}.section-head h2,.page-hero h1{margin:8px 0 0;font-size:clamp(34px,5vw,54px);line-height:1.02;letter-spacing:-.055em}.section-head p{max-width:560px;margin:0;color:var(--muted);line-height:1.65}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.service-card{min-height:280px;padding:28px;border:1px solid var(--line);border-radius:24px;background:var(--surface);display:flex;flex-direction:column}.service-icon{width:52px;height:52px;border-radius:16px;background:var(--surface-2);display:grid;place-items:center}.service-icon svg{width:25px}.service-card h3{margin:25px 0 10px;font-size:23px;letter-spacing:-.035em}.service-card p{margin:0;color:var(--muted);line-height:1.65}.service-card a{margin-top:auto;padding-top:22px;font-weight:800;color:var(--accent)}.book-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.book-card{display:block}.book-cover{aspect-ratio:2/3;overflow:hidden;border-radius:18px;background:var(--surface-2);border:1px solid var(--line)}.book-cover img{width:100%;height:100%;object-fit:cover;display:block}.book-card h3{margin:14px 0 5px;font-size:17px;line-height:1.32;letter-spacing:-.025em}.book-card p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}.book-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.chip{display:inline-flex;align-items:center;min-height:27px;padding:0 9px;border-radius:999px;background:var(--surface-2);font-size:11px;font-weight:750;color:#55554f}.workflow{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;counter-reset:step}.workflow-item{position:relative;min-height:200px;padding:24px;border:1px solid var(--line);border-radius:22px;background:var(--bg);counter-increment:step}.workflow-item::before{content:counter(step,decimal-leading-zero);display:block;margin-bottom:38px;color:var(--accent);font-weight:900;font-size:13px}.workflow-item h3{margin:0 0 8px;font-size:19px}.workflow-item p{margin:0;color:var(--muted);font-size:14px;line-height:1.6}.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.news-card{padding:25px;border:1px solid var(--line);border-radius:22px;background:var(--surface)}.news-card time{font-size:12px;color:var(--muted)}.news-card h3{margin:12px 0 9px;font-size:21px;letter-spacing:-.035em}.news-card p{margin:0;color:var(--muted);line-height:1.6;font-size:14px}.news-card a{display:inline-flex;margin-top:18px;font-weight:800;color:var(--accent)}.cta{padding:26px 0 78px}.cta-card{position:relative;overflow:hidden;padding:48px;border-radius:30px;background:var(--accent);color:#fff}.cta-card::after{content:"";position:absolute;width:460px;height:460px;border:1px solid rgba(255,255,255,.18);border-radius:50%;right:-170px;top:-240px}.cta-card h2{position:relative;z-index:1;max-width:720px;margin:0;font-size:clamp(34px,5vw,58px);line-height:1.02;letter-spacing:-.055em}.cta-card p{position:relative;z-index:1;max-width:650px;color:#cfe2d8;line-height:1.65}.cta-card .hero-actions{position:relative;z-index:1}.cta-card .btn.primary{background:#fff;color:var(--accent);border-color:#fff}.site-footer{border-top:1px solid var(--line);padding:46px 0 28px}.footer-grid{display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:30px}.footer-brand p{max-width:360px;color:var(--muted);line-height:1.6;font-size:13px}.footer-col strong{display:block;margin-bottom:13px}.footer-col a,.footer-col span{display:block;padding:5px 0;color:var(--muted);font-size:13px}.footer-bottom{margin-top:34px;padding-top:20px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:18px;color:var(--muted);font-size:12px}.page-hero{padding:60px 0 35px}.page-hero p{max-width:720px;margin:15px 0 0;color:var(--muted);font-size:17px;line-height:1.7}.content-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:28px;align-items:start}.card{padding:26px;border:1px solid var(--line);border-radius:22px;background:var(--surface)}.card h2,.card h3{margin-top:0;letter-spacing:-.035em}.prose{font-size:16px;line-height:1.78}.prose p{color:#393935}.prose h2{margin-top:38px;font-size:27px}.prose ul,.prose ol{padding-left:22px}.side-card{position:sticky;top:98px}.form{display:grid;gap:17px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.field{display:grid;gap:7px}.field.full{grid-column:1/-1}.field label,.field>span{font-size:13px;font-weight:800}.field small{color:var(--muted);line-height:1.45}.field input,.field select,.field textarea{width:100%;min-height:47px;padding:11px 13px;border:1px solid var(--line);border-radius:13px;background:#fff;color:var(--text);outline:none}.field textarea{min-height:130px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:#537b70;box-shadow:0 0 0 3px rgba(23,59,50,.10)}.field input[type="file"]{padding:10px}.form-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.notice{padding:14px 16px;border-radius:14px;background:var(--surface-2);font-size:13px;line-height:1.6}.notice.success{background:#e9f6ee;color:#135b31}.notice.danger{background:#fff0ef;color:#9d1c14}.notice.warning{background:#fff6e8;color:#7d4a00}.flash{width:min(var(--max),calc(100% - 40px));margin:18px auto 0;padding:13px 16px;border-radius:14px;background:var(--surface);border:1px solid var(--line);font-size:14px}.flash.success{border-color:#b7dec5;background:#eef9f2;color:#135b31}.flash.error,.flash.danger{border-color:#f1c5c1;background:#fff1f0;color:#8e1b14}.auth-page{min-height:calc(100vh - 76px);display:grid;place-items:center;padding:50px 20px 80px}.auth-wrap{width:min(100%,460px)}.auth-card{padding:30px;border:1px solid var(--line);border-radius:26px;background:var(--surface);box-shadow:var(--shadow)}.auth-card h1{margin:8px 0 8px;font-size:32px;letter-spacing:-.05em}.auth-card>p{margin:0 0 24px;color:var(--muted);line-height:1.6}.auth-foot{text-align:center;color:var(--muted);font-size:13px;margin:18px 0 0}.auth-foot a{font-weight:800;color:var(--accent)}.catalog-tools{display:flex;gap:10px;justify-content:space-between;margin-bottom:24px}.search-box{flex:1;max-width:560px;display:flex;gap:8px}.search-box input{flex:1;min-height:44px;border:1px solid var(--line);border-radius:13px;padding:0 14px;background:var(--surface)}.pagination{display:flex;justify-content:center;gap:6px;margin-top:34px}.pagination a,.pagination span{min-width:42px;height:42px;padding:0 12px;border:1px solid var(--line);border-radius:12px;display:grid;place-items:center;background:var(--surface);font-size:13px;font-weight:700}.pagination .current{background:var(--accent);border-color:var(--accent);color:#fff}.book-detail{display:grid;grid-template-columns:320px minmax(0,1fr);gap:44px;align-items:start}.book-detail .book-cover{border-radius:22px}.book-detail h1{margin:0 0 12px;font-size:clamp(38px,5vw,60px);line-height:1.02;letter-spacing:-.055em}.book-detail .lead{font-size:18px;line-height:1.7;color:var(--muted)}.detail-list{display:grid;grid-template-columns:130px 1fr;gap:10px 18px;margin:24px 0}.detail-list dt{font-weight:800}.detail-list dd{margin:0;color:var(--muted)}.empty{padding:46px 24px;border:1px dashed var(--line);border-radius:20px;text-align:center;color:var(--muted)}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.about-panel{min-height:280px;padding:30px;border:1px solid var(--line);border-radius:24px;background:var(--surface)}.about-panel.dark{background:var(--accent);color:#fff}.about-panel.dark p{color:#cfe2d8}.about-panel h2{font-size:30px;letter-spacing:-.045em}.about-panel p{color:var(--muted);line-height:1.7}.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:22px}.contact-list{display:grid;gap:12px}.contact-item{padding:17px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.contact-item strong{display:block;margin-bottom:4px}.contact-item span,.contact-item a{color:var(--muted);font-size:14px;line-height:1.5}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
@media(max-width:980px){.site-nav{position:fixed;inset:76px 14px auto 14px;padding:10px;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:var(--shadow);display:none;flex-direction:column;align-items:stretch}.site-nav.open{display:flex}.site-nav a{padding:13px 14px}.nav-toggle{display:inline-flex}.nav-actions .btn.ghost{display:none}.hero-grid,.content-grid{grid-template-columns:1fr}.orbit-art{min-height:380px}.side-card{position:static}.service-grid,.news-grid{grid-template-columns:repeat(2,1fr)}.book-grid{grid-template-columns:repeat(3,1fr)}.workflow{grid-template-columns:repeat(2,1fr)}.footer-grid{grid-template-columns:1.4fr 1fr 1fr}.footer-col:last-child{grid-column:2/4}.book-detail{grid-template-columns:260px 1fr}}
@media(max-width:700px){.container,.flash{width:min(100% - 24px,var(--max))}.nav-shell{min-height:68px}.site-nav{inset:68px 10px auto}.brand-copy small{display:none}.nav-actions .btn.primary{display:none}.hero{padding:52px 0 34px}.hero-grid{gap:26px}.hero h1{font-size:clamp(43px,15vw,65px)}.orbit-art{min-height:330px;border-radius:26px}.orbit-card{left:18px;right:18px;bottom:18px}.metrics{grid-template-columns:1fr 1fr}.metric{border-bottom:1px solid var(--line)}.metric:nth-child(2){border-right:0}.metric:nth-child(3),.metric:nth-child(4){border-bottom:0}.section{padding:50px 0}.section-head{display:block}.section-head p{margin-top:12px}.service-grid,.news-grid,.book-grid,.workflow,.about-grid,.contact-grid,.footer-grid{grid-template-columns:1fr}.book-grid{grid-template-columns:repeat(2,1fr);gap:15px}.footer-col:last-child{grid-column:auto}.footer-bottom{display:block}.footer-bottom span{display:block;margin-top:7px}.cta-card{padding:34px 24px}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.catalog-tools{display:block}.search-box{max-width:none}.book-detail{grid-template-columns:1fr}.book-detail>.book-cover{width:min(75%,330px);margin-inline:auto}.detail-list{grid-template-columns:110px 1fr}}
@media(max-width:390px){.book-grid{grid-template-columns:1fr 1fr}.book-card h3{font-size:15px}.book-card p{font-size:12px}.metric{padding:18px}.metric strong{font-size:24px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* V2: dynamic campus branding with accessible contrast */
.brand img{object-fit:contain}.btn.primary{color:var(--on-accent,#fff)}.btn.soft{background:var(--accent-2);color:var(--on-accent-2,var(--accent));border-color:transparent}.kicker,.service-card a,.news-card a,.auth-foot a,.workflow-item::before{color:var(--accent-readable,var(--accent))}.orbit-art{background:linear-gradient(145deg,var(--accent),var(--accent-deep,#0b211c))}.orbit-card{color:var(--on-accent,#fff);border-color:color-mix(in srgb,var(--on-accent,#fff) 20%,transparent);background:color-mix(in srgb,var(--on-accent,#fff) 10%,transparent)}.orbit-card small{color:color-mix(in srgb,var(--on-accent,#fff) 76%,transparent)}.orbit-ring{border-color:color-mix(in srgb,var(--on-accent,#fff) 22%,transparent)}.orbit-steps i{background:color-mix(in srgb,var(--on-accent,#fff) 24%,transparent)}.orbit-steps i.done{background:var(--accent-2)}.cta-card,.about-panel.dark{background:var(--accent);color:var(--on-accent,#fff)}.cta-card p,.about-panel.dark p{color:color-mix(in srgb,var(--on-accent,#fff) 78%,transparent)}.cta-card::after{border-color:color-mix(in srgb,var(--on-accent,#fff) 20%,transparent)}.cta-card .btn.primary{background:var(--on-accent,#fff);color:var(--accent);border-color:var(--on-accent,#fff)}.pagination .current{color:var(--on-accent,#fff)}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent-readable,var(--accent));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent)}
.btn.primary{border-color:var(--accent-border,var(--accent))}.cta-card .btn.primary{border-color:var(--on-accent,#fff)}
