@font-face { font-family: 'Inter Variable'; src: url(/fonts/inter-latin-wght-normal.woff2) format('woff2'); font-weight: 100 900; font-style: normal; font-display: swap; }
:root { --ink:#17191f; --muted:#717580; --paper:#fff; --surface:#f7f8fb; --rule:#e9ecf2; --blue:#304dc0; --soft:#eef1fc; --serif:'Inter Variable',Inter,system-ui,sans-serif; --sans:var(--serif); color-scheme:light; font-family:var(--sans); color:var(--ink); background:#fff; font-synthesis:none; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:90px; }
body { margin:0; font-size:15px; line-height:1.65; -webkit-font-smoothing:antialiased; }
a { color:var(--blue); text-underline-offset:4px; }
img { max-width:100%; }
h1,h2,h3 { font-family:var(--sans); font-weight:550; letter-spacing:-.045em; line-height:1.13; }
.inner { width:min(100% - 64px,1120px); margin:0 auto; }
:focus-visible { outline:2px solid var(--blue); outline-offset:5px; }
.site-nav { position:relative; z-index:10; background:#fff; }
.nav-inner { display:flex; align-items:center; gap:28px; min-height:82px; font-size:13px; }
.brand { display:flex; align-items:center; gap:9px; text-decoration:none; color:var(--ink); margin-right:auto; }
.brand-tile { display:block; width:30px; height:30px; border-radius:8px; }
.brand-word { font:650 21px/1 var(--sans); letter-spacing:-.045em; }
.brand-word i { font-style:normal; }
.links { display:flex; gap:25px; }
.links a,.languages a { color:var(--muted); text-decoration:none; }
.links a:hover,.languages a[aria-current] { color:var(--ink); }
.languages { display:flex; gap:8px; font-size:11px; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:15px; min-height:42px; padding:10px 19px; border:0; border-radius:8px; background:var(--ink); color:#fff; font-size:13px; font-weight:550; text-decoration:none; white-space:nowrap; transition:background .15s,transform .15s; }
.button:hover { background:var(--blue); transform:translateY(-1px); }
.button.big { min-height:46px; padding:12px 23px; font-size:14px; }
.textlink { color:var(--ink); }
.hero { overflow:hidden; padding:70px 0 0; text-align:center; }
.hero-grid { display:flex; flex-direction:column; align-items:center; }
.hero-copy { max-width:790px; }
.hero h1 { margin:0 auto; max-width:790px; font-size:clamp(40px,5.3vw,64px); line-height:1.08; letter-spacing:-.057em; font-weight:550; }
.hero h1 span { display:block; }
.hero .lead { margin:24px auto 0; max-width:520px; font-size:17px; line-height:1.65; }
.lead,.muted { color:var(--muted); }
.actions { display:flex; justify-content:center; align-items:center; gap:24px; margin:27px 0 0; }
.actions .textlink { display:none; }
.fine { margin:14px 0 0; color:var(--muted); font-size:12px; }
.hero-art { display:block; width:min(100%,970px); height:auto; margin:38px auto 0; object-fit:contain; }
.logo-strip { padding:34px 0 72px; text-align:center; }
.logo-strip p { color:var(--muted); font-size:12px; margin:0 0 26px; }
.university-marks { display:flex; justify-content:center; align-items:center; gap:55px; flex-wrap:wrap; }
.university-marks a { display:flex; align-items:center; justify-content:center; width:135px; height:58px; }
.university-marks img { width:auto; max-width:135px; height:auto; max-height:46px; object-fit:contain; filter:grayscale(1); opacity:.7; }
.band { padding:85px 0; }
.band.tint { background:var(--surface); }
.section-title { margin:0; font-size:clamp(29px,3.3vw,40px); font-weight:550; }
.tour-heading { max-width:600px; margin-bottom:42px; }
.tour-heading p { color:var(--muted); margin:16px 0 0; }
.product-tour { background:linear-gradient(#fff,#f8f9fc); }
.product-shots { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:38px; align-items:start; }
.product-shot { margin:0; min-width:0; }
.product-shot img { display:block; width:100%; height:auto; border-radius:12px; box-shadow:0 12px 44px -20px #26365835; background:#fff; }
.product-shot figcaption { display:grid; gap:7px; padding:24px 2px 0; color:var(--muted); font-size:14px; }
.product-shot figcaption strong { color:var(--ink); font-size:19px; letter-spacing:-.025em; font-weight:550; }
.steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:55px; margin:48px 0 0; padding:0; list-style:none; }
.steps li { padding:0; }
.num { display:block; font-size:13px; font-weight:550; color:var(--muted); margin-bottom:20px; }
.steps h3 { margin:0 0 12px; font-size:21px; }
.steps p { margin:0; color:var(--muted); font-size:14px; max-width:30ch; }
.split { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:85px; align-items:start; }
.split .muted { max-width:35ch; }
.checks,.guides { margin:0; padding:0; list-style:none; }
.checks { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 32px; }
.checks li { font-size:17px; letter-spacing:-.025em; font-weight:500; }
.guides { display:grid; gap:22px; }
.guides a { display:flex; align-items:center; gap:22px; color:var(--ink); text-decoration:none; font-size:16px; }
.guides img { width:72px; height:40px; object-fit:contain; filter:grayscale(1); }
.guides a:hover { color:var(--blue); }
.guides li:last-child a { color:var(--muted); font-size:14px; margin-top:12px; }
.plainbody { margin:0; max-width:39ch; font-size:21px; letter-spacing:-.03em; line-height:1.6; }
.final { padding:100px 0 115px; text-align:center; }
.final h2 { margin:0 0 25px; font-size:clamp(31px,4vw,46px); }
.foot { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:15px; padding:28px 0 38px; color:var(--muted); font-size:12px; }
.foot nav { display:flex; gap:22px; }
.foot a { color:var(--muted); }
.page-head { padding:70px 0 34px; }
.page-head h1 { margin:0; font-size:clamp(35px,4.7vw,56px); max-width:850px; }
.page-head .lead { max-width:60ch; margin:21px 0 0; font-size:17px; }
.page-body { padding:28px 0 95px; }
.crumb { margin:0 0 22px; font-size:13px; }
.crumb a { color:var(--muted); text-decoration:none; }
.tag { display:inline-block; padding:4px 10px; border-radius:6px; background:var(--soft); font-size:11px; color:var(--blue); font-weight:500; }
.note { padding:18px 22px; border-radius:10px; background:var(--surface); font-size:14px; }
.ruled { margin:0 0 28px; padding:0; }
.ruled > div { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.6fr); gap:30px; padding:18px 0; }
.ruled dt { color:var(--muted); }
.ruled dd { margin:0; }
.ruled.tight > div { grid-template-columns:1fr 1.2fr; gap:20px; padding:12px 0; font-size:14px; }
.rows { margin:0 0 30px; padding:0; list-style:none; }
.rows li { margin:0 0 12px; }
.rows li > a { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) auto; gap:24px; align-items:center; padding:24px; border-radius:12px; background:var(--surface); text-decoration:none; color:var(--ink); }
.rows li > a > [aria-hidden] { display:none; }
.row-name { font-size:19px; font-weight:500; letter-spacing:-.03em; }
.row-meta { font-size:13px; color:var(--muted); }
.plainrows li { padding:14px 0; }
.plainrows h3 { font-size:19px; margin:0 0 8px; }
.plainrows p { color:var(--muted); margin:0 0 8px; }
.detail,.policy-layout { display:grid; grid-template-columns:minmax(0,.7fr) minmax(0,1.8fr); gap:70px; align-items:start; }
.facts,.toc { position:sticky; top:35px; }
.detail-main h2 { margin:48px 0 20px; font-size:26px; }
.detail-main h2:first-child { margin-top:0; }
.detail-main .checks { grid-template-columns:1fr; gap:18px; }
.notes { color:var(--muted); font-size:14px; padding-left:18px; }
.toc { font-size:13px; }
.toc p { color:var(--muted); }
.toc ol { margin:0; padding:0; list-style:none; }
.toc a { display:block; padding:8px 0; color:var(--muted); text-decoration:none; }
.policy { max-width:70ch; overflow-wrap:anywhere; }
.policy h2 { margin:42px 0 14px; font-size:25px; }
.policy h2:first-child { margin-top:0; }
.policy p,.policy li { line-height:1.8; font-size:15px; }
.policy table { border-collapse:collapse; width:100%; font-size:14px; }
.policy td,.policy th { padding:10px 16px 10px 0; text-align:left; vertical-align:top; }
@media(max-width:950px) { .links { display:none; } .nav-inner { gap:20px; min-height:72px; } .university-marks { gap:25px; } .hero { padding-top:55px; } .detail,.policy-layout { grid-template-columns:1fr; gap:32px; } .facts,.toc { position:static; } .split { gap:45px; } }
@media(max-width:650px) { .inner { width:calc(100% - 40px); } .nav-inner .button { display:none; } .languages { margin-left:auto; } .hero { padding-top:42px; } .hero h1 { font-size:41px; } .hero .lead { font-size:15px; max-width:35ch; } .hero-art { width:calc(100% + 32px); max-width:none; margin-top:32px; } .logo-strip { padding-bottom:25px; } .logo-strip p { max-width:34ch; margin-inline:auto; } .university-marks { gap:15px 30px; } .university-marks a { width:100px; height:44px; } .university-marks img { max-width:100px; max-height:35px; } .band { padding:60px 0; } .product-shots,.steps,.split { grid-template-columns:1fr; gap:35px; } .steps { margin-top:32px; } .num { margin-bottom:12px; } .steps p { max-width:45ch; } .product-shot figcaption { padding-top:18px; } .checks { gap:24px 20px; } .checks li { font-size:15px; } .final { padding:70px 0; } .page-head { padding-top:45px; } .rows li > a { grid-template-columns:1fr auto; padding:20px; gap:8px 16px; } .row-name { grid-column:1/-1; } .ruled > div { grid-template-columns:1fr; gap:7px; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .button { transition:none; } }

/* Separate image layers: idle float on the wrapper, hover movement on each object. */
.hero-scene { position:relative; aspect-ratio:2.15; margin-bottom:10px; perspective:1100px; isolation:isolate; }
.hero-layer { position:absolute; transform:translate3d(0,0,0); }
.hero-layer img { display:block; width:100%; height:100%; object-fit:contain; transition:transform .6s cubic-bezier(.2,.8,.2,1),filter .6s; }
.layer-folder { left:62%; bottom:8%; width:29%; height:72%; z-index:1; }
.layer-folio { left:9%; bottom:9%; width:35%; height:88%; z-index:2; }
.layer-paper { left:43%; top:5%; width:43%; height:47%; z-index:4; }
.layer-book { left:25%; bottom:1%; width:61%; height:57%; z-index:5; }
.section-art { display:block; width:100%; height:auto; object-fit:contain; }
.checks-overview { align-items:center; }
.checks-art { max-width:360px; margin:20px 0 -10px; }
.art-split { align-items:center; }
.pricing-overview .pricing-art { max-width:460px; }
.pricing-overview .muted { max-width:43ch; margin-bottom:24px; }
.pricing-free { margin:18px 0 12px; font-size:clamp(38px,5vw,62px); letter-spacing:-.06em; line-height:1.1; }
.pricing-layout { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:65px; align-items:center; }
.pricing-layout .pricing-art { align-self:start; }
@media(prefers-reduced-motion:no-preference) {
 @keyframes folio-float { from { transform:translate3d(0,0,0); } to { transform:translate3d(0,-8px,0); } }
 @keyframes paper-float { from { transform:translate3d(0,-4px,0); } to { transform:translate3d(0,-16px,0); } }
 .layer-folio { animation:folio-float 4.8s -1.4s ease-in-out infinite alternate; }
 .layer-folder { animation:folio-float 6.1s -3s ease-in-out infinite alternate-reverse; }
 .layer-book { animation:folio-float 5.5s -.8s ease-in-out infinite alternate; }
 .layer-paper { animation:paper-float 4.1s -2s ease-in-out infinite alternate; }
}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
 .hero-layer:hover { z-index:8; }
 .layer-folio:hover img { transform:translate3d(-9px,-14px,20px) rotate(-3deg); filter:drop-shadow(0 12px 13px #26365812); }
 .layer-folder:hover img { transform:translate3d(10px,-13px,15px) rotate(3deg); }
 .layer-paper:hover img { transform:translate3d(0,-24px,25px) rotate(-5deg); }
 .layer-book:hover img { transform:translate3d(0,-12px,20px) rotate(-1.5deg); filter:drop-shadow(0 13px 14px #26365813); }
 .section-art { transition:transform .6s cubic-bezier(.2,.8,.2,1); }
 .section-art:hover { transform:translateY(-6px); }
}
@media(prefers-reduced-motion:reduce) { .hero-layer,.hero-layer img,.section-art { animation:none; transition:none; transform:none; } }
@media(max-width:650px) { .hero-scene { aspect-ratio:1.9; margin-bottom:0; } .checks-art { max-width:290px; margin:20px auto 0; } .pricing-layout { grid-template-columns:1fr; gap:25px; } .pricing-layout .pricing-art { grid-row:1; max-width:330px; margin:0 auto; } .pricing-overview .pricing-art { max-width:330px; margin:0 auto; } }
