@charset "UTF-8";
:root{font-family:"Segoe UI",Arial,sans-serif;color:#f7f1e6;background:#25251f;color-scheme:dark;--screen:#f5f1e7;--ink:#273c30;--muted:#687363;--line:#d8ddce;--accent:#55714c;--soft:#e7ebde;--glass:#24281fdf}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,a{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}a{color:inherit;text-decoration:none}button,a{transition:background-color .18s,color .18s,opacity .18s}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid #a7bd8c;outline-offset:4px}button:disabled{cursor:wait;opacity:.5}[hidden]{display:none!important}p,h1,h2,h3{margin:0}p{line-height:1.7}h1,h2,h3{text-wrap:balance}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link{position:fixed;top:-80px;left:20px;z-index:50;background:white;color:#263d2b;padding:14px}.skip-link:focus{top:15px}
.room-header{position:fixed;top:0;left:0;right:0;z-index:10;padding:25px 33px;display:flex;justify-content:space-between;align-items:center;gap:15px;pointer-events:none;background:linear-gradient(#17191366,transparent)}.room-header>*{pointer-events:auto}.signature{font:44px/.8 Georgia,serif;letter-spacing:-5px;display:flex;align-items:center;text-shadow:0 2px 15px #0005}.signature>span:first-child{color:#c7d2a8}.signature-description{font:12px/1.5 "Segoe UI",sans-serif;letter-spacing:0;margin-left:21px}.signature small{display:block;color:#e0ded1;font-size:10px}.header-controls{display:flex;align-items:center;gap:13px}.room-button{border:1px solid #fff4;padding:12px 18px;border-radius:30px;font-size:11px;min-height:44px;background:var(--glass);backdrop-filter:blur(12px)}.room-button span{margin-left:12px}.room-button:hover{background:#4b5940}.mode-switch{display:flex;align-items:center;gap:11px;background:var(--glass);border:1px solid #ffffff32;border-radius:30px;padding:5px;font-size:12px;min-height:46px;backdrop-filter:blur(12px)}.mode-switch>span:not(.mode-indicator){padding:9px 14px;border-radius:25px}.developer-label{background:#7b9264;color:#fff}.gamer-label{color:#e5e0d7}.mode-indicator{opacity:.65;font-size:14px}.mode-switch:hover{border-color:#fff8}
#studio{height:100dvh;width:100%;position:relative;isolation:isolate}#scene{width:100%;height:100%;display:block;position:absolute;inset:0}#screen-layer{position:absolute;inset:0;pointer-events:none;z-index:2;overflow:hidden;opacity:0;transition:opacity .28s}#monitor-object{width:1100px;height:650px;pointer-events:auto;backface-visibility:hidden}#portfolio-surface{width:100%;height:100%;color:var(--ink);background:var(--screen);overflow:hidden;display:flex;flex-direction:column;font-size:20px;color-scheme:light;box-shadow:0 0 30px #f3eac022;border-radius:2px}#portfolio-surface :is(button,a):focus-visible{outline:3px solid var(--accent);outline-offset:2px}.screen-topbar{height:37px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 16px;background:#e1e5d9;border-bottom:1px solid var(--line);font-size:12px;letter-spacing:.25px}.window-dots{display:flex;gap:6px}.window-dots i{width:7px;height:7px;border-radius:50%;background:#9eaa8b}.window-dots i:first-child{background:#b58b75}.window-dots i:nth-child(2){background:#c4b58a}.screen-topbar button{min-width:37px;min-height:35px;font-size:24px}.screen-shell{display:flex;flex-direction:column;min-height:0;flex:1}.screen-header{padding:22px 42px 18px;display:flex;justify-content:space-between;align-items:center;gap:20px;flex-shrink:0}.screen-name{font:30px Georgia,serif;letter-spacing:-.8px}.screen-name span{display:block;font:13px "Segoe UI",sans-serif;letter-spacing:0;margin-top:7px;color:var(--muted)}.screen-status{font-size:12px;color:var(--muted);display:flex;gap:8px;align-items:center}.screen-status i{width:6px;height:6px;border-radius:50%;background:#7c9564}.screen-nav{display:flex;gap:9px;margin:0 42px;padding-bottom:13px;border-bottom:1px solid var(--line);flex-shrink:0}.screen-nav button{padding:9px 19px;border-radius:5px;font-size:15px;min-height:40px}.screen-nav button:hover{background:var(--soft)}.screen-nav button[aria-current=page]{background:#d6dfc7;color:#32452b}.screen-nav .nox-tab{margin-left:auto;color:var(--muted)}.screen-content{padding:25px 43px 28px;overflow:auto;overscroll-behavior:contain;min-height:0;flex:1;scrollbar-width:thin;scrollbar-color:#b9c1ac transparent}.screen-content h1{font:57px/1.05 Georgia,serif;letter-spacing:-2px;margin-bottom:18px}.screen-content h2{font:32px/1.2 Georgia,serif;letter-spacing:-.6px;margin:0 0 18px}.screen-content h3{font-size:20px;font-weight:500;margin-bottom:9px}.screen-content p{font-size:17px;color:var(--muted);max-width:790px;margin:10px 0 17px}.screen-content .eyebrow{font-size:12px;color:var(--accent);margin-bottom:15px}.screen-content .intro-text{font-size:20px;max-width:760px;line-height:1.65}.screen-content :is(button,a){font-size:14px;min-height:42px}.monitor-action{display:inline-flex;gap:25px;align-items:center;background:#3f5838!important;color:white!important;border-radius:5px;padding:12px 18px}.monitor-action:hover{background:#59704d!important}.monitor-secondary{border-bottom:1px solid var(--line);padding:10px 0!important}.monitor-actions{display:flex;align-items:center;gap:24px;margin-top:22px}.about-layout{display:grid;grid-template-columns:1fr 230px;gap:25px}.about-aside{background:var(--soft);padding:23px;border-radius:7px;display:flex;flex-direction:column;justify-content:center;gap:18px}.about-aside>div{border-bottom:1px solid #bdc9af;padding-bottom:14px}.about-aside>div:last-child{border:0;padding:0}.about-aside strong{font-size:17px;font-weight:500;display:block}.about-aside small{font-size:12px;color:var(--muted);display:block;margin-top:5px;line-height:1.5}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.project-card{border:1px solid var(--line);border-radius:7px;padding:22px;text-align:left;background:#ffffff27;display:flex;flex-direction:column;min-height:190px}.project-card:hover{background:var(--soft)}.project-card .project-number{font-size:12px;color:var(--muted);margin-bottom:15px}.project-card h3{font:25px Georgia,serif}.project-card p{font-size:15px;margin:7px 0 12px}.project-card>span:last-child{font-size:13px;color:var(--accent);margin-top:auto}.project-detail-back{color:var(--muted);font-size:13px!important;padding:0 0 14px;display:block}.detail-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}.detail-tags span{font-size:12px;background:var(--soft);padding:7px 12px;border-radius:4px}.notebook-list{display:grid;gap:15px}.notebook-list article{display:grid;grid-template-columns:35px 1fr;gap:15px;border-bottom:1px solid var(--line);padding-bottom:15px}.notebook-list article>span{font-size:23px;color:var(--accent)}.notebook-list h3{font-size:18px}.notebook-list p{font-size:15px;margin:0}.screen-footer{padding:10px 42px;border-top:1px solid var(--line);font-size:11px;display:flex;justify-content:space-between;align-items:center;flex-shrink:0;min-height:42px;color:var(--muted)}.screen-footer button{font-size:12px;min-height:32px}.screen-footer button:hover{color:var(--ink)}.screen-footer button span{margin-left:8px}
.room-vignette{position:absolute;inset:0;z-index:3;pointer-events:none;background:radial-gradient(ellipse at 50% 45%,transparent 35%,#0a0d0c50 100%)}.loading-card{position:absolute;inset:0;z-index:8;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#24271f;gap:14px;transition:opacity .5s}.loading-mark{font:75px Georgia,serif;letter-spacing:-6px;color:#d5ddbf}.loading-card p{font:26px Georgia,serif}.loading-card small{color:#b7c1ab;font-size:12px}.loading-card button{color:#d3dcc3;font-size:11px;border-bottom:1px solid #7b896d;padding:10px;margin-top:15px}.intro-caption{position:absolute;left:50%;bottom:100px;transform:translateX(-50%);z-index:5;text-align:center;text-shadow:0 2px 20px #0009}.intro-caption p{font:30px Georgia,serif;margin-bottom:6px}.intro-caption>span{font-size:12px;color:#eee8d9}.intro-caption button{font-size:11px;background:#1a201ccb;border:1px solid #fff4;border-radius:25px;display:block;margin:20px auto 0;padding:12px 20px;min-height:44px}.monitor-invitation{position:absolute;bottom:110px;left:50%;transform:translateX(-50%);z-index:4;background:#222820ce;border:1px solid #ffffff40;backdrop-filter:blur(12px);border-radius:30px;padding:13px 22px;min-height:46px;font-size:11px;white-space:nowrap}.monitor-invitation span{margin-left:16px}.monitor-invitation:hover{background:#3e5037}.room-toolbar{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:18px 33px;z-index:10;font-size:11px;background:linear-gradient(transparent,#11161180);pointer-events:none;gap:20px}.room-toolbar>*{pointer-events:auto}.room-location{display:flex;align-items:center;gap:9px;text-shadow:0 1px 9px #0009}.location-dot{width:5px;height:5px;background:#d0e2b4;border-radius:50%}.room-tools{display:flex;gap:10px;align-items:center;background:#1f251dd9;border:1px solid #ffffff26;backdrop-filter:blur(12px);border-radius:30px;padding:4px 9px}.room-tools button{font-size:10px;min-height:36px;padding:8px 10px;border-radius:22px}.room-tools button:hover{background:#ffffff18}.transition-caption{display:none;position:absolute;bottom:100px;width:100%;text-align:center;z-index:5;font:24px Georgia,serif;text-shadow:0 3px 20px #000}.noscript-note{position:relative;z-index:12;background:#222;padding:15px;font-size:13px}html[data-scene=ready] #loading-card{opacity:0;pointer-events:none}html[data-scene=ready] #screen-layer{opacity:1}html:not([data-camera=intro]) .intro-caption{display:none}html[data-camera=intro] .monitor-invitation,html[data-camera=focus] .monitor-invitation,html[data-camera=transition] .monitor-invitation{display:none}html[data-camera=transition] #screen-layer{opacity:0;pointer-events:none}html[data-camera=transition] .transition-caption{display:block}html[data-camera=transition] #monitor-object{pointer-events:none}html[data-camera=transition] .room-tools{opacity:.35;pointer-events:none}
html[data-mode=gamer]{--screen:#151b2b;--ink:#eeeaf6;--muted:#b1b5c8;--line:#34394d;--accent:#cfb5f7;--soft:#252b40;--glass:#191a2be8;color-scheme:dark}html[data-mode=gamer] #portfolio-surface{color-scheme:dark;box-shadow:0 0 40px #8365e933}html[data-mode=gamer] .screen-topbar{background:#22283b}html[data-mode=gamer] .screen-nav button[aria-current=page]{background:#433756;color:#f5e9ff}html[data-mode=gamer] .developer-label{background:none;color:#d1cdd9}html[data-mode=gamer] .gamer-label{background:#a7799d;color:white}html[data-mode=gamer] .room-button:hover{background:#443b57}html[data-mode=gamer] .about-aside>div{border-color:var(--line)}html[data-mode=gamer] .monitor-action{background:#c3a2e0!important;color:#1e1c2b!important}.gamer-layout{display:grid;grid-template-columns:240px 1fr;gap:38px;align-items:center;min-height:255px}.rank-card{padding:20px;text-align:center;background:linear-gradient(145deg,#24384a,#25233b);border:1px solid #5f7d7460;border-radius:8px}.rank-card svg{width:100px;height:100px;fill:#508d7044;stroke:#99e4bc;stroke-width:2}.rank-card strong{display:block;font-size:21px;color:#a7e6bf;margin-top:8px;font-weight:500}.rank-card small{display:block;font-size:11px;color:#c3c3cd;margin-top:7px}.gamer-title{font:75px/1 Georgia,serif!important;margin:0 0 15px!important;letter-spacing:-3px}.asset-note{font-size:11px!important;color:var(--muted)!important;margin:20px 0 0!important}
#reader{width:min(1080px,calc(100% - 40px));height:min(800px,calc(100dvh - 60px));max-height:none;border:1px solid #8b9b7966;border-radius:14px;padding:0;background:var(--screen);color:var(--ink);overflow:hidden;box-shadow:0 30px 120px #0009}#reader::backdrop{background:#0e1710ad;backdrop-filter:blur(10px)}.reader-top{height:47px;background:var(--soft);display:flex;align-items:center;justify-content:space-between;padding:0 17px;font-size:11px;border-bottom:1px solid var(--line)}.reader-top button{width:44px;height:44px}#reader-dock{height:calc(100% - 47px)}#reader .screen-topbar{display:none}#reader #portfolio-surface{height:100%;box-shadow:none}html[data-scene=fallback]{background:var(--screen);color:var(--ink)}html[data-scene=fallback] body{overflow:auto}html[data-scene=fallback] #studio{min-height:100dvh;height:auto;padding:105px 6% 110px}html[data-scene=fallback] #scene,html[data-scene=fallback] .room-vignette,html[data-scene=fallback] .loading-card,html[data-scene=fallback] .monitor-invitation,html[data-scene=fallback] .intro-caption{display:none}html[data-scene=fallback] #screen-layer{position:relative;opacity:1;overflow:visible}html[data-scene=fallback] #monitor-object{width:min(1100px,100%)!important;height:auto!important;margin:auto;transform:none!important}html[data-scene=fallback] #portfolio-surface{min-height:600px;height:auto;border:1px solid var(--line);border-radius:10px}html[data-scene=fallback] .screen-content{overflow:visible}html[data-scene=fallback] .room-header{background:#252b20;color:#f6f3e7}html[data-scene=fallback] .room-toolbar{background:#252b20;color:#f6f3e7}
@media(max-width:800px){.room-header{padding:20px}.signature-description{display:none}.header-controls{gap:8px}.room-button{padding:10px 13px;font-size:10px}.mode-switch{font-size:10px;gap:2px;min-height:44px}.mode-switch>span:not(.mode-indicator){padding:9px 10px}.mode-indicator{font-size:12px}.room-toolbar{padding:15px 18px;flex-direction:column;gap:12px}.room-location{font-size:10px}.room-tools{gap:4px}.room-tools button{min-height:44px;padding:8px 13px}.monitor-invitation{bottom:144px;font-size:11px}.intro-caption{bottom:150px;width:90%}.intro-caption p{font-size:26px}#reader{width:calc(100% - 22px);height:calc(100dvh - 30px);border-radius:11px}.screen-header{padding:24px 22px 17px}.screen-name{font-size:29px}.screen-status{display:none}.screen-nav{margin:0 22px;gap:3px;flex-wrap:wrap}.screen-nav button{font-size:13px;padding:8px 12px;min-height:44px}.screen-content{padding:25px 23px}.screen-content h1{font-size:43px;letter-spacing:-1.3px}.screen-content h2{font-size:29px}.screen-content p,.screen-content .intro-text{font-size:16px}.about-layout{grid-template-columns:1fr}.about-aside{display:grid;grid-template-columns:1fr 1fr;gap:20px}.about-aside>div{border:0;padding:0}.project-grid{grid-template-columns:1fr}.project-card{min-height:160px}.screen-footer{padding:10px 22px;font-size:10px}.gamer-layout{grid-template-columns:1fr;gap:22px}.rank-card{max-width:210px}.gamer-title{font-size:60px!important}.screen-content .monitor-actions{gap:17px;flex-wrap:wrap}#reader .screen-nav .nox-tab{margin-left:0}html[data-scene=fallback] #studio{padding:100px 12px 150px}html[data-scene=fallback] .room-toolbar{position:relative}html[data-scene=fallback] .room-header{position:absolute}}
@media(max-width:380px){.room-header{padding:17px 13px}.signature{font-size:38px}.room-button span{display:none}.room-button{padding:10px}.mode-switch>span:not(.mode-indicator){padding:8px}.room-tools button{padding:8px 10px}.room-tools{gap:0}.screen-nav{margin:0 15px}.screen-nav button{padding:8px 10px}.screen-header{padding:20px 18px}.screen-content{padding:22px 18px}.screen-footer{padding:10px 18px}.screen-footer>span{max-width:180px}.about-aside{grid-template-columns:1fr}.monitor-actions{flex-direction:column;align-items:flex-start}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;scroll-behavior:auto!important}.transition-caption{display:none!important}}
@media(pointer:coarse){.room-tools button{min-height:44px}.screen-nav button{min-height:44px}}
@supports(padding:max(0px)){.room-header{padding-top:max(20px,env(safe-area-inset-top))}.room-toolbar{padding-bottom:max(15px,env(safe-area-inset-bottom))}}
/* Approved cinematic media is the room; live HTML replaces its monitor screen. */
#monitor-object{position:absolute;top:0;left:0;transform-origin:0 0;will-change:transform}
.room-film{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;opacity:0;z-index:1}
.room-film.is-playing{opacity:1}
html[data-camera=transition] #screen-layer{transition:none;opacity:0}
.room-vignette{background:radial-gradient(ellipse at 50% 45%,transparent 50%,#08090b30 100%)}
.transition-caption{display:none!important}
#lamp-button{display:none}
html[data-scene=fallback] #monitor-object{position:relative}
#motion-button[aria-pressed=false]{background:#a6bb88;color:#202b1a;font-weight:600}
#play-transition{background:#d0debc;color:#273b24;border:1px solid #e2ebcf;border-radius:25px;padding:12px 18px;min-height:44px;font-size:11px;font-weight:600}
#play-transition:hover{background:#e4eccf}
@media(max-width:800px){.header-controls{flex-wrap:wrap;justify-content:flex-end;max-width:90%}#play-transition{font-size:10px;padding:10px 12px}.room-header{align-items:flex-start}.room-button{display:none}}
@media(max-width:480px){.room-tools{flex-wrap:wrap;justify-content:center;max-width:100%}.room-tools button{font-size:10px;padding:8px 11px}.room-tools #replay-intro{display:none}}
/* The room fills the viewport; scene.js selects matching portrait or landscape media. */
#room-stage{position:absolute;inset:0;overflow:hidden}
@media(max-width:800px),(max-width:1024px) and (orientation:portrait){
  .room-header{position:fixed;align-items:center}
  .header-controls{max-width:none;gap:7px}
  .room-button{display:block;padding:10px 12px}
  .room-button span{display:none}
  .signature-description{display:none}
  .screen-nav{flex-wrap:wrap}
  #reader .screen-nav .nox-tab{margin-left:0}
  #reader .screen-content h1{font-size:clamp(32px,9vw,43px)}
  #reader .screen-nav button,#reader .screen-footer button{min-height:44px}
  .monitor-invitation{bottom:max(140px,calc(env(safe-area-inset-bottom) + 110px))}
  .room-toolbar{padding-inline:15px}
  #reader{width:calc(100% - 22px);height:calc(100dvh - 30px);max-height:calc(100dvh - 30px)}
}
