:root{--paper:#f8f3ec;--paper-dot:#e9dfd2;--ink:#34251c;--ink-muted:#7a6151;--pen:#2440b8;--pen-tint:#dce2f7;--highlighter:#e7eea1;--rule:#e3d6c6;--font-sans:'Poppins',system-ui,sans-serif;--font-hand:'Give You Glory',cursive}
*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden}body{font:14px/1.65 var(--font-sans);color:var(--ink);background:var(--paper) radial-gradient(var(--paper-dot) 1px,transparent 1.3px) 0 0/24px 24px;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}a:focus-visible,button:focus-visible{outline:2px solid var(--pen);outline-offset:4px}::selection{background:var(--pen-tint)}
#scene{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none;mask-image:linear-gradient(to bottom,transparent 4%,#000 20%,#000 87%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,transparent 4%,#000 20%,#000 87%,transparent 100%)}
.scene-wash{position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 66%,transparent 55%,rgba(248,243,236,.06) 100%)}
.site-header{position:fixed;inset:0 0 auto;z-index:5;height:158px;pointer-events:none;background:linear-gradient(var(--paper) 10%,rgba(248,243,236,.9) 44%,rgba(248,243,236,0))}.site-header>*{pointer-events:auto}.brand{position:absolute;left:34px;top:23px;font:30px/1 var(--font-hand);color:var(--pen);transform:rotate(-2deg);view-transition-name:site-brand}
.view-switch{position:absolute;right:34px;top:20px;display:flex;gap:3px;padding:3px;background:var(--paper);border:1.5px solid var(--pen);border-radius:999px;view-transition-name:site-mode;font-size:12px}.view-switch a{padding:7px 13px;color:var(--pen);border-radius:999px}.view-switch a[aria-current]{background:var(--pen);color:var(--paper)}.view-switch a:hover{background:var(--pen-tint)}.view-switch a[aria-current]:hover{background:var(--pen)}
.nav{position:absolute;left:50%;top:81px;transform:translateX(-50%);display:flex;gap:clamp(13px,2vw,25px);white-space:nowrap;background:rgba(248,243,236,.83);padding:11px 22px;border:1px solid rgba(122,97,81,.18);border-radius:999px;font-size:11px;backdrop-filter:blur(8px)}.nav a{position:relative;display:flex;align-items:center;gap:7px;isolation:isolate}.nav-number{font:21px/1 var(--font-hand);color:var(--pen)}.nav a::before{content:'';position:absolute;left:15px;right:-4px;top:6px;bottom:0;z-index:-1;background:var(--highlighter);transform:rotate(-1deg) scaleX(0);transform-origin:left;transition:transform .22s}.nav a:hover::before,.nav a.is-hovered::before,.nav a[aria-current]::before{transform:rotate(-1deg) scaleX(1)}.nav a:hover,.nav a.is-hovered,.nav a[aria-current]{color:var(--pen)}
.markers{position:fixed;inset:0;pointer-events:none;z-index:3}.marker{position:absolute;left:0;top:0;display:grid;place-items:center;width:46px;height:46px;padding:0;border:0;background:transparent;pointer-events:auto;transform:translate(-50%,-50%);color:var(--pen);opacity:0;transition:opacity .4s}.ready .marker{opacity:1}.marker .number{display:grid;place-items:center;width:30px;height:32px;border:1.3px solid var(--pen);border-radius:48% 52% 50% 46%;background:rgba(248,243,236,.97);font:24px/1 var(--font-hand);box-shadow:0 2px 6px #34251c0d;transition:background .2s,transform .2s}.marker:hover .number,.marker.is-hovered .number,.marker:focus-visible .number{background:var(--highlighter);transform:scale(1.12)}.marker[aria-pressed=true] .number{background:var(--pen);color:var(--paper)}.marker .tooltip{position:absolute;top:-28px;left:50%;transform:translateX(-50%) translateY(4px);white-space:nowrap;background:var(--paper);padding:5px 10px;border-radius:7px;font:11px/1.4 var(--font-sans);color:var(--ink);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}.marker:hover .tooltip,.marker.is-hovered .tooltip,.marker:focus-visible .tooltip{opacity:1;transform:translateX(-50%) translateY(0)}body.at .marker:not([aria-pressed=true]){opacity:.25;pointer-events:none}
.scene-controls{position:fixed;right:30px;bottom:26px;z-index:4;display:flex;align-items:center;gap:10px}.time-switch{display:flex;padding:4px;gap:2px;background:rgba(248,243,236,.97);border:1px solid #e3d6c688;border-radius:999px}.time-switch button{border:0;background:transparent;color:var(--ink-muted);padding:9px 13px;font:500 11px/1 var(--font-sans);border-radius:999px}.time-switch button[aria-pressed=true]{background:var(--pen);color:var(--paper)}.time-switch button:hover:not([aria-pressed=true]){background:var(--pen-tint)}.motion{border:0;color:var(--pen);padding:10px 13px;border-radius:999px;background:rgba(248,243,236,.9);font:11px/1 var(--font-sans)}.hint{position:fixed;left:34px;bottom:27px;margin:0;font:19px/1.4 var(--font-hand);color:var(--pen);transform:rotate(-2deg);transition:opacity .2s}body.at .hint{opacity:0}
.card{position:fixed;right:34px;top:50%;z-index:6;width:min(370px,calc(100vw - 68px));max-height:calc(100vh - 235px);overflow:auto;padding:32px 27px 23px;background:var(--paper) radial-gradient(var(--paper-dot) 1px,transparent 1.3px) 0 0/24px 24px;border:0;border-radius:13px;box-shadow:0 8px 40px #34251c1a;opacity:0;visibility:hidden;transform:translate(15px,-36%);transition:opacity .3s,transform .45s,visibility .3s;pointer-events:none}.card.on{opacity:1;visibility:visible;transform:translate(0,-36%);pointer-events:auto}.card-close{position:absolute;right:12px;top:7px;border:0;background:none;color:var(--pen);font:27px/1 var(--font-hand);padding:7px}.card .k{font:21px/1.2 var(--font-hand);color:var(--pen);margin:0 0 12px}.card h2{font:600 27px/1.2 var(--font-sans);letter-spacing:-.025em;margin:0 0 17px}.card p{font-size:12px;line-height:1.9;margin:0 0 12px}.card .m{color:var(--ink-muted)}.card ul{list-style:none;padding:0;margin:0 0 15px}.card li{display:flex;gap:10px;padding:7px 0;font-size:11px;line-height:1.8;border-bottom:1px solid var(--rule)}.card li .n{min-width:40px;font:18px/1.5 var(--font-hand);color:var(--pen)}.card .hl{background:linear-gradient(transparent 60%,var(--highlighter) 60%,var(--highlighter) 93%,transparent 93%)}.card a.more{font:500 11px/1.8 var(--font-sans);color:var(--pen);border-bottom:1px solid var(--pen);padding-bottom:3px}.card .pics{display:flex;gap:8px;margin:15px 0}.card .pics img{width:calc((100% - 16px)/3);height:110px;object-fit:cover}.card-footer{margin-top:23px;padding-top:14px;border-top:1px solid var(--rule);display:flex;flex-wrap:wrap;gap:12px 20px;font-size:11px}.card-footer a{color:var(--pen);text-decoration:underline;text-underline-offset:4px}.card-footer button{background:none;border:0;padding:0;color:var(--ink-muted);font:inherit;text-decoration:underline;text-underline-offset:4px}
.load,.no-script{position:fixed;inset:0;z-index:10;display:grid;place-items:center;background:var(--paper);text-align:center;transition:opacity .6s,visibility .6s}.load.off{opacity:0;visibility:hidden;pointer-events:none}.load .hand{font:32px/1.2 var(--font-hand);color:var(--pen);margin:0 0 18px}.load p{font-size:12px;color:var(--ink-muted)}.load a,.no-script a{font-size:12px;color:var(--pen);text-decoration:underline;text-underline-offset:4px}.skip-link{position:fixed;top:-100px;left:20px;z-index:20;background:var(--paper);padding:10px}.skip-link:focus{top:15px}
.paper-veil{position:fixed;inset:0;z-index:100;background:var(--paper) radial-gradient(var(--paper-dot) 1px,transparent 1.3px) 0 0/24px 24px;pointer-events:none;opacity:0;transition:opacity .28s ease}.view-leaving .paper-veil{opacity:1}.view-entering .paper-veil{animation:paper-reveal .6s ease both}@keyframes paper-reveal{from{opacity:1}to{opacity:0}}@view-transition{navigation:auto}::view-transition-old(root){animation:paper-out .3s both}::view-transition-new(root){animation:paper-in .5s both}@keyframes paper-out{to{opacity:0}}@keyframes paper-in{from{opacity:0}to{opacity:1}}
@media(max-width:900px){.nav{gap:14px;font-size:10px;padding:10px 16px}.nav-number{font-size:19px}}
@media(max-width:760px){.brand{left:18px;top:24px;font-size:25px;max-width:215px}.view-switch{right:17px;top:17px}.view-switch a{font-size:11px;padding:6px 10px}.site-header{height:205px}.nav{left:17px;right:17px;top:77px;transform:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 9px;border-radius:14px;white-space:normal;padding:12px;font-size:9px}.nav a{line-height:1.4;gap:5px;align-items:baseline}.nav-number{font-size:18px}#scene{mask-image:linear-gradient(to bottom,transparent 5%,#000 26%,#000 84%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,transparent 5%,#000 26%,#000 84%,transparent 100%)}.scene-controls{left:50%;right:auto;bottom:21px;transform:translateX(-50%);gap:6px;white-space:nowrap}.hint{left:50%;bottom:76px;transform:translateX(-50%);font-size:17px;white-space:nowrap}.motion{font-size:10px;padding:10px 11px}.time-switch button{font-size:10px;padding:9px 11px}.marker .number{width:28px;height:30px;font-size:22px}.marker .tooltip{font-size:10px}.card{left:17px;right:17px;top:auto;bottom:82px;width:auto;max-height:42vh;padding:28px 22px 21px;transform:translateY(16px)}.card.on{transform:none}.card h2{font-size:24px}.card p{font-size:11px}.card .pics img{height:92px}.card-footer{margin-top:17px}body.at .markers{visibility:hidden}}
@media(max-width:370px){.brand{font-size:22px;top:25px}.view-switch{right:12px}.view-switch a{padding:6px 8px}.nav{font-size:8.5px}}
@media(prefers-reduced-motion:reduce){*,::view-transition-old(root),::view-transition-new(root){transition:none!important;animation:none!important}}

/* A fuller gallery and a close phone view that can be panned. */
.card .pics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.card .pics img{width:100%;height:100px}
.mobile-hint{display:none}
@media(max-width:760px){.desktop-hint{display:none}.mobile-hint{display:inline}.hint{font-size:15px}.card .pics img{height:80px}}

.card h2:focus{outline:none}

/* One title per section; its number carries the notebook handwriting. */
.card h2{display:flex;align-items:baseline;gap:12px}.section-number{font:32px/1 var(--font-hand);font-weight:400;letter-spacing:0;color:var(--pen)}

@media(max-width:760px){.scene-controls{width:max-content;max-width:calc(100vw - 20px)}}
@media(max-width:370px){.card{bottom:114px}.hint{bottom:106px}}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.ai-sandbox{margin-top:24px;padding-top:16px;border-top:1px solid var(--rule)}.ai-sandbox summary{color:var(--pen);font:24px/1.3 var(--font-hand);cursor:pointer;margin-bottom:12px}.ai-sandbox ul{margin-top:8px}.ai-sandbox li b{font-weight:500}
@media(max-width:760px){.scene-controls{flex-wrap:wrap;justify-content:center;gap:5px;width:calc(100vw - 34px)}.time-switch button{padding:8px 9px}.card{bottom:118px}.hint{bottom:110px}}

@media(min-width:761px){.card{max-height:calc(100dvh - 280px);transform:translate(15px,-50%)}.card.on{transform:translate(0,-50%)}}
/* Keep close and notebook controls reachable while the sandbox notes scroll. */
.card{display:flex;flex-direction:column;overflow:hidden}.card #cardin{min-height:0;overflow:auto;scrollbar-width:thin;padding-right:3px}.card-close{z-index:2;background:var(--paper);border-radius:50%}.card-footer{flex-shrink:0}

/* Pointer visitors discover the objects themselves; keyboard controls appear only on focus. */
.discovery-control{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0;background:none}
.discovery-control:focus-visible{position:static;width:auto;height:auto;padding:10px 13px;margin:0;overflow:visible;clip:auto;clip-path:none;border-radius:999px;background:var(--paper);color:var(--pen);font:11px/1 var(--font-sans);outline:2px solid var(--pen);outline-offset:4px}
@media(max-width:760px){.card{bottom:82px}.hint{bottom:76px}}
@media(max-width:370px){.card{bottom:114px}.hint{bottom:106px}}
@media(max-width:760px){body:has(.discovery-control:focus-visible) .card{bottom:118px}body:has(.discovery-control:focus-visible) .hint{bottom:110px}}
