:root{font-family:'Trebuchet MS',Arial,sans-serif;color:#fff1d7;background:#352319;font-synthesis:none;--cream:#f6ebd5;--ink:#34271e;--rust:#a33f28;--muted:#cdbb9f}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible{outline:3px solid #f2bc56;outline-offset:6px}a{color:inherit;text-decoration:none}button{color:inherit;border:0;background:none}button[hidden],[hidden]{display:none!important}#studio,#scene{position:fixed;inset:0;width:100%;height:100%;display:block}#scene{touch-action:none}.site-header{position:fixed;left:3.5%;right:3.5%;top:30px;display:flex;align-items:center;justify-content:space-between;pointer-events:none;z-index:3}.site-header>*{pointer-events:auto}.wordmark{display:flex;align-items:center;gap:12px;font-size:19px;font-weight:bold;text-shadow:0 1px 12px #24130b66}.brand-mark{font-size:38px;line-height:1;letter-spacing:-4px;border-right:1px solid #f6ebd544;padding-right:15px;font-family:Georgia,serif}.wordmark small{display:block;font-size:10px;font-weight:400;letter-spacing:3px;margin-top:5px}.site-header nav{display:flex;align-items:center;gap:28px;font-size:14px}.site-header nav button{padding:10px 0}.site-header nav a{border:1px solid #f6ebd55e;border-radius:100px;padding:11px 17px;display:flex;gap:15px}.site-header nav button:hover{color:#ffc974}.intro{position:fixed;left:6%;top:24%;pointer-events:none;transition:opacity .5s,transform .6s;text-shadow:0 2px 24px #25130855;max-width:310px}.eyebrow{font-size:10px;letter-spacing:2.1px}.intro h1{font-size:clamp(28px,3.4vw,54px);font-weight:400;line-height:1.05;letter-spacing:-2px;margin:16px 0 20px}.intro p{font-size:14px;line-height:1.65;color:#f9e9d0}.studio-caption{position:fixed;right:4.3%;top:25%;display:flex;gap:12px;font-size:12px;line-height:1.6;transform:rotate(3deg);pointer-events:none;transition:opacity .4s}.caption-line{width:23px;border-top:1px solid #efd6a8;margin-top:9px}.scene-footer{position:fixed;bottom:27px;left:3.5%;right:3.5%;display:flex;align-items:center;justify-content:space-between;gap:18px;z-index:3}.pill{border:1px solid #f6ebd588;border-radius:40px;padding:12px 20px;font-size:14px;display:inline-flex;align-items:center;justify-content:center;gap:18px;background:#32241780;backdrop-filter:blur(14px);transition:background .2s,transform .2s}.pill:hover{background:#f6ebd5;color:#34271e;transform:translateY(-2px)}.primary{background:#f4e8cf;color:#38271d;border-color:#f4e8cf}.button-count{font-size:10px;border-left:1px solid #34271e44;padding-left:15px}.object-shortcuts{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:30px;background:#22160c66;backdrop-filter:blur(12px);font-size:13px}.object-shortcuts button{padding:5px}.object-shortcuts button:hover{color:#ffc974}.object-shortcuts span{opacity:.35}.scene-footer p{font-size:12px;color:#eedcc1;margin:0;min-width:230px;text-align:right;text-shadow:0 1px 5px #20160a}.back-studio{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);z-index:5;white-space:nowrap;background:#261c17e6}.back-studio:hover{transform:translateX(-50%) translateY(-2px)}.back-studio span{font-size:11px;border:1px solid currentColor;border-radius:4px;padding:2px 5px;opacity:.7}body.focused .intro,body.focused .studio-caption,body.focused .scene-footer{opacity:0;pointer-events:none}.loading{position:fixed;inset:0;background:#352319;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:20;transition:opacity .65s,visibility .65s}.loading.done{opacity:0;visibility:hidden;pointer-events:none}.loading-mark{font-family:Georgia,serif;font-size:76px;color:#efb446;letter-spacing:-10px}.loading p{font-size:13px;letter-spacing:1px}.loading-dots{animation:blink 1s infinite}@keyframes blink{50%{opacity:.2}}dialog{position:fixed;inset:0;border:0;padding:0;margin:auto;width:min(1110px,94vw);height:min(840px,90dvh);max-height:90dvh;border-radius:15px;background:#f5eedf;color:#34271e;box-shadow:0 35px 120px #0a080599;overflow:hidden}dialog::backdrop{background:#1e150cb8;backdrop-filter:blur(9px)}dialog[open]{animation:dialog-in .3s ease-out}@keyframes dialog-in{from{opacity:0;transform:translateY(18px) scale(.97)}to{opacity:1;transform:none}}#dialog-content{height:100%;overflow:auto;overscroll-behavior:contain}.close-dialog{position:absolute;right:18px;top:16px;z-index:5;border-radius:50%;width:39px;height:39px;background:#faf5eb;color:#3c2b1f;box-shadow:0 2px 15px #3b261322;font-size:17px}.close-dialog:hover{background:#dba64b}.dialog-header{padding:46px 52px 30px}.dialog-header .eyebrow{font-size:11px;color:#93603d}.dialog-header h2{font-size:44px;line-height:1.05;font-weight:400;letter-spacing:-1.8px;margin:13px 0 12px}.dialog-header p{font-size:16px;line-height:1.6;max-width:640px;color:#736350}.placeholder-info{padding:50px;font-size:18px}#fallback{position:fixed;inset:0;padding:25vh 12%;background:#352319;z-index:2}#fallback h1{font-size:42px}#fallback p{max-width:480px;line-height:1.7}.no-script{position:fixed;inset:0;background:#352319;padding:30vh 15%;z-index:30}
@media(max-width:900px){.intro{left:5%;top:20%;max-width:230px}.intro h1{font-size:34px}.studio-caption{display:none}.scene-footer p{min-width:0;max-width:160px;font-size:11px}.site-header nav{gap:16px}.eyebrow{font-size:9px;letter-spacing:1px}}
@media(max-width:600px){.site-header{top:21px;left:6%;right:6%}.wordmark{font-size:16px;gap:9px}.brand-mark{font-size:30px;padding-right:11px}.wordmark small{font-size:8px;letter-spacing:2px}.site-header nav{gap:15px;font-size:13px}.site-header nav a{display:none}.intro{top:15%;left:7%;max-width:250px}.intro h1{font-size:37px;line-height:1.02;margin:12px 0}.intro p{font-size:13px;line-height:1.5}.scene-footer{bottom:24px;left:6%;right:6%;flex-wrap:wrap;justify-content:center;gap:12px}.scene-footer p{flex-basis:100%;max-width:100%;text-align:center;font-size:12px;order:3}.pill{padding:11px 16px;font-size:13px}.object-shortcuts{font-size:12px;gap:4px}.dialog-header{padding:45px 25px 23px}.dialog-header h2{font-size:34px}dialog{width:96vw;height:91dvh;max-height:91dvh;border-radius:13px}.back-studio{bottom:35px}}
.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:35px 24px;padding:0 52px 45px}.project-card{padding:0;text-align:left;color:var(--ink);display:block;border-radius:3px}.card-image{aspect-ratio:4/3;background:var(--project-color);overflow:hidden;position:relative;border-radius:5px}.card-image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s}.project-card:hover img{transform:scale(1.045)}.project-index{position:absolute;left:12px;top:12px;background:#f6eddbed;color:#433224;border-radius:50%;width:29px;height:29px;display:grid;place-items:center;font-size:11px}.card-caption{display:flex;justify-content:space-between;align-items:center;padding-top:16px}.card-caption span{font-size:11px;color:#83735b}.card-caption h3{font-size:24px;font-weight:400;margin:6px 0 0;letter-spacing:-.6px}.card-caption .card-open{font-size:22px;color:#62482d;border:1px solid #b8a286;border-radius:50%;width:31px;height:31px;display:grid;place-items:center}.concept-section{padding:37px 52px 0;background:#e8ddc7}.concept-section h3{font-weight:400;font-size:32px;letter-spacing:-1px;margin:10px 0}.concept-section>p{font-size:14px;color:#77644f}.concept-section .project-grid{padding:12px 0 40px}.dialog-footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #d9cbb3;padding:25px 52px;font-size:12px;color:#79664e}.dialog-footer div{display:flex;gap:20px}.dialog-footer a{border-bottom:1px solid #a38b69;padding-bottom:3px}.project-topbar{padding:21px 80px 0 52px;display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#867058}.project-topbar button{padding:8px 0;text-decoration:underline;text-underline-offset:4px;font-size:13px}.project-topbar+.dialog-header{padding-top:22px;padding-bottom:28px}.project-hero{margin:0 30px;overflow:hidden;border-radius:6px}.project-hero img{display:block;width:100%;height:auto;max-height:730px;object-fit:contain}.project-description{display:grid;grid-template-columns:1.6fr 1fr;gap:60px;padding:42px 52px}.project-description p{font-size:17px;line-height:1.7;margin:12px 0 20px}.project-description dl{margin:0;display:flex;flex-direction:column;gap:20px}.project-description dt{font-size:10px;text-transform:uppercase;letter-spacing:1.6px;color:#8c795c;margin-bottom:8px}.project-description dd{margin:0;font-size:14px}.concept-note{font-size:12px;color:#836d52;line-height:1.6}.text-link{font-size:13px;border-bottom:1px solid #a99a82;padding-bottom:4px}.next-project{width:100%;text-align:left;background:#e6d9bf;padding:26px 52px;display:grid;grid-template-columns:1fr 40px;gap:10px;color:#43321e}.next-project>.eyebrow{grid-column:1}.next-project>span:nth-child(2){font-size:26px;letter-spacing:-.5px;grid-column:1}.next-symbol{grid-row:1/3;grid-column:2;align-self:center;font-size:33px}.next-project:hover{background:#ddc9a4}.about-content{padding:0 52px 45px}.about-intro{max-width:700px}.about-intro p{font-size:19px;line-height:1.75;color:#64513d}.contact-link{display:inline-block;margin:15px 0 20px;border-bottom:1px solid #b18e64;font-size:22px;line-height:1.8}.about-skills{margin-top:32px;padding-top:28px;border-top:1px solid #d7c7ac}.skill-list{display:flex;gap:9px;flex-wrap:wrap;margin-top:18px}.skill-list span{border:1px solid #c6b290;border-radius:30px;padding:9px 15px;font-size:13px}.about-details{display:grid;grid-template-columns:1fr 1fr;gap:42px;margin-top:38px}.about-details p{font-size:14px;line-height:1.8;color:#77634b}.project-card:focus-visible,.next-project:focus-visible{outline-color:#993b23;outline-offset:5px}#fallback{z-index:2}.scene-footer{transition:opacity .4s}
@media(max-width:600px){.project-grid{grid-template-columns:1fr;padding:0 22px 30px;gap:25px}.card-caption h3{font-size:23px}.concept-section{padding:28px 22px 0}.concept-section .project-grid{padding:12px 0 28px}.dialog-footer{padding:22px;gap:18px;flex-wrap:wrap}.project-topbar{padding-left:25px}.project-hero{margin:0 12px}.project-description{grid-template-columns:1fr;padding:28px 25px;gap:26px}.project-description dl{flex-direction:row;gap:30px}.project-description p{font-size:16px}.next-project{padding:25px}.about-content{padding:0 25px 30px}.about-intro p{font-size:16px}.contact-link{font-size:18px}.about-details{grid-template-columns:1fr;gap:20px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* Navigation spacing and responsive menu. */
.site-header{top:25px;background:none;border-radius:0;gap:25px}.wordmark{font-size:20px;text-shadow:0 1px 5px #3b2b2455}.wordmark small{font-size:11px;letter-spacing:2.6px}.site-header nav{gap:30px;font-size:15px}.site-header nav button{min-height:44px;position:relative;text-shadow:0 1px 4px #36271e66}.site-header nav button::after{content:'';position:absolute;height:2px;bottom:4px;left:0;right:0;background:currentColor;transform:scaleX(0);transition:transform .2s}.site-header nav button:hover::after,.site-header nav button[aria-current]::after{transform:scaleX(1)}.site-header nav button:hover{color:#fff7eb}.site-header nav a{background:#f5eadb;color:#44352b;border:0;padding:13px 22px;min-height:44px}.site-header nav a:hover{background:#fff8f0}#menu-toggle{display:none}.object-shortcuts{font-size:13px;gap:5px}.scene-footer p{min-width:190px}.studio-caption{right:4%;top:18%;font-size:13px;color:#fff5e3;text-shadow:0 1px 4px #4e382e}
@media(max-width:1050px){.scene-footer{flex-wrap:wrap;justify-content:center;gap:12px}.scene-footer p{flex-basis:100%;text-align:center;max-width:none}.site-header nav{gap:20px}}
@media(max-width:650px){.site-header{top:20px;left:6%;right:6%;align-items:center}.wordmark{font-size:17px}.wordmark small{font-size:9px}.brand-mark{font-size:33px}#menu-toggle{display:flex;gap:10px;align-items:center;min-height:44px;font-size:14px;border:1px solid #fff0d58c;border-radius:25px;padding:0 15px}.site-header nav{display:none;position:absolute;top:62px;left:0;right:0;background:#f6ead9;color:#44352b;padding:18px;border-radius:15px;box-shadow:0 10px 35px #34261c33;gap:4px;align-items:stretch}.menu-open .site-header nav{display:flex;flex-direction:column}.site-header nav button{text-align:left;padding:12px 14px;text-shadow:none;font-size:17px}.site-header nav button::after{display:none}.site-header nav button:hover{color:#a33f28}.site-header nav a{display:block;background:#49362b;color:#fff3e1;text-align:center;margin-top:9px}.site-header nav a:hover{background:#654b3a}.object-shortcuts{flex-wrap:wrap;justify-content:center;font-size:12px;gap:2px}.scene-footer{bottom:20px}.scene-footer .primary{padding:10px 18px}.scene-footer p{font-size:12px}.intro{top:16%}}

.site-header{color:#443429}.wordmark{text-shadow:none}.brand-mark{border-color:#44342944}.site-header nav button{text-shadow:none}.site-header nav button:hover{color:#873c2b}#menu-toggle{border-color:#44342977}.studio-caption{display:none}

#inspect-help{position:fixed;bottom:83px;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:14px;color:#fff8ee;background:#443429;padding:9px 15px;border-radius:20px;pointer-events:none}body.focused .site-header nav{background:#f5eadb;border-radius:30px;padding:0 15px}body.focused .wordmark{background:#f5eadb;border-radius:12px;padding:8px 12px}@media(max-width:650px){body.focused #menu-toggle{background:#f5eadb}body.focused .site-header nav{padding:18px;border-radius:15px}}

/* Nighttime UI contrast; object layouts and the cream keyboard are retained. */
:root{background:#111526}.loading,#fallback,.no-script{background:#111526}.site-header{color:#f6e8d3}.brand-mark{border-color:#f6e8d344}.site-header nav button:hover{color:#ffd08b}#menu-toggle{border-color:#f6e8d377}.site-header nav a{background:#e8c99f;color:#39291f}.object-shortcuts{background:#171525b8}.pill{background:#211b29c9}.pill.primary{background:#e8c99f;color:#39291f}.intro{text-shadow:0 2px 18px #080b17}.scene-footer p{text-shadow:0 1px 6px #080b17}body.focused .site-header nav,body.focused .wordmark{background:#201c2beF;color:#f6e8d3}#inspect-help{background:#211b29}.back-studio{background:#211b29}@media(max-width:650px){.site-header nav{background:#211b2d;color:#f6e8d3}.site-header nav a{background:#e8c99f;color:#39291f}body.focused #menu-toggle{background:#211b2d}.site-header nav button:hover{color:#ffd08b}}

/* Opaque navigation surface keeps text legible over every camera view. */
.site-header{top:20px;padding:12px 18px;background:#211b2d;color:#f6e8d3;border:1px solid #716355;border-radius:16px;box-shadow:0 6px 24px #08061140;pointer-events:auto}
.site-header .wordmark,body.focused .site-header .wordmark{background:none;padding:0;text-shadow:none;color:#f6e8d3}
.site-header nav,body.focused .site-header nav{background:none;padding:0;gap:8px;border-radius:0;color:#f6e8d3;font-size:15px;font-weight:600}
.site-header nav button{padding:10px 14px;border-radius:8px;color:#f6e8d3;min-height:44px}
.site-header nav button:hover{color:#fff4e4;background:#3d3348}
.site-header nav button::after{left:14px;right:14px;bottom:5px;background:#edc991}
.site-header nav a{margin-left:8px;background:#e8c99f;color:#39291f;padding:12px 20px;min-height:44px}
.site-header nav a:hover{background:#fff0d7;color:#39291f}
.site-header :is(a,button):focus-visible{outline:2px solid #ffe0a6;outline-offset:3px}
@media(max-width:650px){
  .site-header{top:16px;left:4%;right:4%;padding:10px 12px;gap:12px;border-radius:13px}
  .site-header .wordmark{font-size:16px;gap:9px}.site-header .wordmark small{font-size:8px;letter-spacing:1.7px}
  .site-header .brand-mark{font-size:30px;padding-right:10px}
  #menu-toggle,body.focused #menu-toggle{background:#352b40;color:#f6e8d3;border-color:#867466;padding:0 13px;flex-shrink:0}
  .site-header nav,body.focused .site-header nav{top:calc(100% + 10px);left:0;right:0;background:#211b2d;border:1px solid #716355;padding:12px;border-radius:13px;gap:4px}
  .site-header nav button{font-size:17px;padding:12px 14px}
  .site-header nav a{margin:8px 0 0;text-align:center}
}

/* Day / night control: both icons belong to one accessible switch. */
.site-header{gap:12px}.site-header .wordmark{margin-right:auto}
#theme-toggle{display:flex;align-items:center;gap:9px;min-height:44px;flex-shrink:0;padding:5px 11px 5px 6px;border:1px solid #867466;border-radius:24px;color:#f6e8d3;background:#352b40;font-size:14px;font-weight:600}
#theme-toggle:hover{background:#45394f}.theme-track{position:relative;display:flex;align-items:center;justify-content:space-around;gap:7px;width:56px;height:30px;border-radius:20px;background:#211b2d}
.theme-track::before{content:'';position:absolute;top:2px;left:2px;width:26px;height:26px;border-radius:50%;background:#e8c99f;transform:translateX(26px);transition:transform .3s ease}
.theme-track svg{position:relative;width:18px;height:18px;flex-shrink:0}.moon-icon{color:#39291f}.sun-icon{color:#d8c7b6}
html[data-theme=day]{background:#c8b395}
html[data-theme=day] .site-header{background:#f4e9d8;color:#39291f;border-color:#bba68b;box-shadow:0 6px 24px #46362824}
html[data-theme=day] .site-header .wordmark,html[data-theme=day] .site-header nav,html[data-theme=day] .site-header nav button{color:#39291f}
html[data-theme=day] .brand-mark{border-color:#39291f44}
html[data-theme=day] .site-header nav button:hover{background:#e5d4bb;color:#39291f}
html[data-theme=day] .site-header nav button::after{background:#9f482b}
html[data-theme=day] .site-header nav a{background:#49382b;color:#fff3e1}
html[data-theme=day] .site-header nav a:hover{background:#624634}
html[data-theme=day] .site-header :is(a,button):focus-visible{outline-color:#884b2b}
html[data-theme=day] #theme-toggle,html[data-theme=day] #menu-toggle{background:#eadbc5;color:#39291f;border-color:#bba68b}
html[data-theme=day] #theme-toggle:hover{background:#dfcbb0}
html[data-theme=day] .theme-track{background:#d9c4a5}
html[data-theme=day] .theme-track::before{transform:translateX(0);background:#fff6e8}
html[data-theme=day] .sun-icon{color:#915018}html[data-theme=day] .moon-icon{color:#695544}
html[data-theme=day] .pill.primary{background:#f7ead3;color:#39291f}
html[data-theme=day] .object-shortcuts{background:#49382bdd}
html[data-theme=day] .loading,html[data-theme=day] #fallback,html[data-theme=day] .no-script{background:#eee0c9;color:#39291f}
@media(max-width:800px) and (min-width:651px){.site-header nav{gap:2px}.site-header nav button{padding:10px}.site-header nav a{padding:12px}.site-header .wordmark{font-size:17px}#theme-label{display:none}}
@media(max-width:650px){#theme-label{display:none}#theme-toggle{padding:5px;min-width:44px}.theme-track{width:44px;gap:0}.theme-track::before{width:21px;height:26px;transform:translateX(19px)}.theme-track svg{width:16px;height:16px}.site-header{gap:8px}html[data-theme=day] .site-header nav{background:#f4e9d8;border-color:#bba68b}}
@media(max-width:380px){.site-header{padding:8px;gap:5px}.site-header .wordmark{font-size:14px;gap:6px}.site-header .wordmark small{letter-spacing:1px;font-size:8px}.site-header .brand-mark{font-size:26px;padding-right:6px}#menu-toggle{padding:0 9px;font-size:12px;gap:5px}}
@media(prefers-reduced-motion:reduce){.theme-track::before{transition:none}}

/* Requested type pairing: Chelsea Market headings, Manrope reading and UI. */
@font-face{font-family:'Chelsea Market';src:url('./assets/fonts/chelsea-market-400.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Manrope;src:url('./assets/fonts/manrope-400.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Manrope;src:url('./assets/fonts/manrope-500.ttf') format('truetype');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:Manrope;src:url('./assets/fonts/manrope-600.ttf') format('truetype');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:Manrope;src:url('./assets/fonts/manrope-700.ttf') format('truetype');font-weight:700;font-style:normal;font-display:swap}
:root{font-family:Manrope,Arial,sans-serif}
h1,h2,h3,.next-project>span:nth-child(2){font-family:'Chelsea Market',Manrope,sans-serif;font-weight:400;letter-spacing:0}
.intro h1{font-family:'Chelsea Market',Manrope,sans-serif;font-size:clamp(28px,2.1vw,34px);line-height:1.18;letter-spacing:-.4px;font-weight:400}
.dialog-header h2,.card-caption h3,.concept-section h3{letter-spacing:0;line-height:1.2;overflow-wrap:anywhere}
.dialog-header h2{font-size:42px}.card-caption h3{font-size:24px}.concept-section h3{font-size:32px}
@media(min-width:651px){.intro{left:18%;top:15%;max-width:270px}.intro p{font-size:14px}}
@media(max-width:650px){.intro{max-width:280px}.intro h1{font-size:32px}.dialog-header h2{font-size:32px}.card-caption h3{font-size:23px}}
/* Object-bound cues: quiet white points, with reference-style callouts on hover or focus. */
#object-markers{position:fixed;inset:0;z-index:2;pointer-events:none}
.object-marker{position:absolute;left:-22px;top:-22px;width:44px;height:44px;padding:0;pointer-events:auto;border:0;background:none;border-radius:50%;color:#30281f;cursor:pointer}
.object-marker::before{content:'';position:absolute;left:19px;top:19px;width:6px;height:6px;border-radius:50%;background:#fffaf0;opacity:.78;box-shadow:0 1px 5px #0007;transition:opacity .18s,transform .18s}
.object-marker::after{content:'';position:absolute;left:22px;top:22px;width:38px;height:1px;background:#fff4df;transform:rotate(-45deg);transform-origin:0 50%;opacity:0;transition:opacity .18s;pointer-events:none}
.object-label{position:absolute;left:47px;top:-29px;display:block;width:max-content;max-width:190px;padding:9px 15px;border-radius:24px;background:#fff5df;color:#30281f;font-family:Manrope,Arial,sans-serif;font-size:13px;font-weight:600;line-height:1.2;box-shadow:0 3px 14px #17100b26;opacity:0;visibility:hidden;transform:translateY(3px);transition:opacity .18s,transform .18s,visibility .18s;pointer-events:none;text-align:center}
.object-marker.active,.object-marker:focus-visible{z-index:1}
.object-marker.active::before,.object-marker:focus-visible::before{opacity:1;transform:scale(1.25)}
.object-marker.active::after,.object-marker:focus-visible::after{opacity:.9}
.object-marker.active .object-label,.object-marker:focus-visible .object-label{opacity:1;visibility:visible;transform:translateY(0)}
.object-marker.label-left .object-label{left:auto;right:47px}.object-marker.label-left::after{transform:rotate(-135deg)}
.object-marker.label-below .object-label{top:44px}.object-marker.label-below::after{transform:rotate(45deg)}
.object-marker.label-below.label-left::after{transform:rotate(135deg)}
.object-marker:focus-visible{outline:1px solid #fff4df;outline-offset:-7px}
@media(max-width:650px){.object-label{max-width:150px;font-size:12px;padding:8px 12px}.object-marker::before{width:5px;height:5px;left:19.5px;top:19.5px}}

/* Minimal floating header: scene stays visible behind the brand and controls. */
html .site-header,html[data-theme=day] .site-header{background:transparent;border:0;box-shadow:none;backdrop-filter:none;pointer-events:none}
.site-header>*{pointer-events:auto}
.site-header .wordmark,body.focused .site-header .wordmark{text-shadow:0 1px 7px #080611a6}
html[data-theme=day] .site-header .wordmark{color:#fff3df;text-shadow:0 1px 7px #24170de6}
html .site-header nav,html body.focused .site-header nav,html[data-theme=day] .site-header nav{display:flex;position:static;flex-direction:row;background:transparent;border:0;box-shadow:none;padding:0;border-radius:0}
.site-header nav a{white-space:nowrap;margin:0}
@media(max-width:650px){.site-header{padding:8px 0;gap:8px}.site-header nav a{display:block;margin:0;padding:11px 13px;font-size:12px}.site-header .wordmark{font-size:15px}.site-header .wordmark small{font-size:8px;letter-spacing:1px}}
@media(max-width:380px){.site-header .wordmark{font-size:13px;gap:5px}.site-header .brand-mark{font-size:25px;padding-right:6px}.site-header nav a{padding:11px 10px}.site-header{gap:6px}}
@media(max-width:650px){html[data-theme=day] .site-header .wordmark{color:#39291f;text-shadow:none}}

/* Icon-only theme switch. */
#theme-toggle{padding:5px;gap:0}

/* Handwritten About diary, opened from the actual desk notebook. */
@font-face{font-family:Caveat;src:url('./assets/fonts/caveat-variable.ttf') format('truetype');font-style:normal;font-weight:400 700;font-display:swap}
/* Only page controls sit on screen; all diary writing is on the 3D paper. */
#notebook-controls{position:fixed;z-index:5;bottom:88px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:18px;background:#30251dd9;color:#f4e7ce;border:1px solid #a28c6a;border-radius:30px;padding:7px 12px;font:13px Manrope,sans-serif;white-space:nowrap}
#notebook-controls button{min-height:40px;padding:7px 13px;border-radius:22px;border:1px solid #c0a681;font:inherit}#notebook-controls button:hover:not(:disabled){background:#eedec0;color:#3b2b20}#notebook-controls button:disabled{opacity:.35;cursor:default}
#notebook-progress{min-width:93px;text-align:center;font-size:12px}.screen-reader-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:normal;border:0}
@media(max-width:650px){#notebook-controls{bottom:91px;gap:8px;padding:5px 8px;font-size:12px}#notebook-controls button{padding:7px 9px}#notebook-progress{min-width:70px;font-size:11px}.reading-notebook .site-header .wordmark{font-size:13px}}
