@font-face{font-family:Manuscript;src:url('../../assets/fonts/manuscript.woff2');font-weight:600;font-display:swap}
@font-face{font-family:Console;src:url('../../assets/fonts/console.woff2');font-weight:600;font-display:swap}
@font-face{font-family:Journal;src:url('../../assets/fonts/journal.woff2');font-weight:700;font-display:swap}
@font-face{font-family:Comic;src:url('../../assets/fonts/comic.woff2');font-weight:700;font-display:swap}
@font-face{font-family:Pixel;src:url('../../assets/fonts/pixel.woff2');font-weight:400;font-display:swap}
:root{--ink:#17342c;--muted:#51695e;--paper:#f3f7f1;--accent:#236a50;--second:#b74739;--line:#91a897;--heading:Console,Arial,sans-serif;--body:Arial,sans-serif}
*{box-sizing:border-box;letter-spacing:0}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;color:var(--ink);background:#202c28;font:15px/1.65 var(--body);isolation:isolate}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}a:hover{color:var(--second)}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--second);outline-offset:5px}[hidden]{display:none!important}img{display:block;max-width:100%}svg{width:19px;height:19px;stroke-width:1.7;flex-shrink:0}h1,h2,h3,p{margin-top:0}h1,h2,h3{font:600 32px/1.15 var(--heading);overflow-wrap:break-word}h1{font-size:90px;margin:19px 0 25px;line-height:1.02}h1>span{display:block}h2{font-size:38px;margin:10px 0 19px}h3{font-size:29px;margin:13px 0 18px}p{margin-bottom:19px}main{min-width:0}.name-dot{color:var(--second)}.world-section{scroll-margin-top:94px;min-width:0;position:relative}.section-heading{margin-bottom:37px;max-width:760px}.section-heading p{font-size:16px;color:var(--muted);max-width:640px}.eyebrow,.institution,.project-meta{font:11px/1.7 Console,Arial,sans-serif;text-transform:uppercase;color:var(--muted)}.institution{display:block;max-width:490px}.bio{font-size:17px;line-height:1.85;max-width:590px}.photo{width:48px;height:48px;object-fit:cover;border-radius:50%;border:2px solid var(--line)}.maker{display:flex;align-items:center;gap:11px;font-size:12px}.maker .photo{width:31px;height:31px}.recent{margin-top:27px;max-width:540px}.recent>span{font:11px Console,Arial,sans-serif;color:var(--muted);text-transform:uppercase}.recent p{font-size:13px;margin:9px 0 0}.hero-actions,.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.hero-actions{margin-top:27px}.hero-actions a,.actions a{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:9px 13px;border:1px solid var(--line);font:12px/1.5 Console,Arial,sans-serif}.hero-actions a:first-child{background:var(--accent);color:var(--paper);border-color:var(--accent)}.actions a:hover,.hero-actions a:hover{background:var(--second);color:var(--paper);border-color:var(--second)}.actions svg{width:15px;height:15px}.world-nav{display:flex;gap:9px}.world-nav a{display:flex;align-items:center;gap:8px;min-height:42px;padding:9px 12px;font:12px/1.4 Console,Arial,sans-serif;white-space:nowrap}.world-nav a[aria-current=location]{color:var(--second)}.nav-num{font-size:10px;opacity:.6}.world-nav svg{width:16px;height:16px}.project{min-width:0}.project-meta{display:flex;justify-content:space-between;gap:15px}.project-description{font-size:14px;line-height:1.8}.project-media{min-width:0;overflow:hidden}.product-image{width:100%;aspect-ratio:1.96;object-fit:contain;background:#fff}.tags{display:flex;flex-wrap:wrap;gap:7px;list-style:none;margin:20px 0;padding:0}.tags li{font:10px/1.5 Console,Arial,sans-serif;padding:5px 8px;border:1px solid var(--line);color:var(--muted)}.voice-product{aspect-ratio:1.96;display:flex;align-items:center;justify-content:center;gap:16px;flex-direction:column;background:#102827;color:#c5e8d6}.voice-product>svg{width:35px;height:35px}.voice-product>span{font:14px Console,Arial,sans-serif}.voice-wave{height:66px;display:flex;align-items:center;gap:5px}.voice-wave b{display:block;width:4px;height:var(--bar);background:#79c9bd}.skill-collection{display:grid;gap:20px}.skill-heading{display:flex;align-items:center;gap:12px;margin-bottom:17px}.skill-heading h3{font:600 18px/1.3 var(--heading);margin:0}.skill-number{font:11px Console,Arial,sans-serif;color:var(--muted)}.skill-count{margin-left:auto;font:10px Console,Arial,sans-serif;color:var(--muted)}.skill-items{padding:0;margin:0;list-style:none;display:flex;gap:8px;flex-wrap:wrap}.skill-items li{font-size:12px;line-height:1.4;padding:7px 9px;border-bottom:1px solid var(--line)}.heatmap{overflow:auto;margin:25px 0;border:1px solid var(--line);background:#ffffffeb}.heatmap img{width:850px;max-width:none;min-height:160px}.github-copy{font-size:13px}.event-record{display:grid;grid-template-columns:46px minmax(0,1fr);gap:23px;border-top:1px solid var(--line);padding-top:26px}.event-emblem{width:45px;height:45px;display:grid;place-items:center;background:var(--accent);color:var(--paper)}.event-copy time{font:11px Console,Arial,sans-serif;color:var(--muted)}.event-place{color:var(--muted);font-size:13px}.event-copy>p{font-size:14px}.contact-title .eyebrow{font-size:10px}.email{display:flex;align-items:center;gap:13px;font-size:18px;overflow-wrap:anywhere}.contact-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 28px;margin-top:32px}.contact-links a,.contact-links button{display:flex;align-items:center;gap:12px;min-width:0;min-height:52px;padding:12px 0;border:0;border-bottom:1px solid var(--line);background:none;text-align:left;font-size:13px}.contact-links>*>svg:last-child{margin-left:auto}.contact-links span{overflow-wrap:anywhere}.contact-links [data-copied=true] span::after{content:' / copied';color:var(--second);font-size:11px}.colophon{display:flex;justify-content:space-between;align-items:center;gap:25px;padding:30px 0;font:10px Console,Arial,sans-serif;text-transform:uppercase}.colophon a{display:flex;align-items:center;gap:10px}.colophon svg{width:14px;height:14px}
#world-stage{position:fixed;inset:0;width:100%;height:100%;z-index:-2;pointer-events:none}.character{width:260px;height:260px;flex-shrink:0}.sprite{display:block;width:100%;height:100%;background:var(--sprite) 0 0/200% 200% no-repeat;filter:drop-shadow(0 8px 9px #0003)}.sprite[data-frame='1']{background-position:100% 0}.sprite[data-frame='2']{background-position:0 100%}.sprite[data-frame='3']{background-position:100% 100%}#companions{position:fixed;inset:0;z-index:15;overflow:hidden;pointer-events:none}.companion{position:absolute;left:0;top:0;width:46px;height:46px;padding:0;background:none;border:0;pointer-events:auto;touch-action:none;cursor:grab;opacity:0}.companion .character{width:100%;height:100%}.companion:active{cursor:grabbing}.companion:hover{filter:brightness(1.12)}.review-return{position:fixed;bottom:14px;left:12px;z-index:18;width:34px;height:34px;display:grid;place-items:center;background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:4px}.review-return svg{width:16px;height:16px}.skip-link{position:fixed;top:-100px;left:12px;z-index:100;background:var(--paper);padding:12px}.skip-link:focus{top:12px}.sr-only{position:absolute;clip-path:inset(50%);width:1px;height:1px;overflow:hidden}
/* Murim: a continuous handscroll with a marginal chapter index. */
body[data-world=murim]{--heading:Manuscript,Georgia,serif;--paper:#f4f6ec;--accent:#2d6549;--second:#ab3b2c;--ink:#213e30;--muted:#617563;--line:#9fab94}
.murim-layout{max-width:1430px;margin:auto;padding:0 60px 0 145px}.sect-header{display:flex;align-items:center;justify-content:space-between;gap:20px;color:#f4f6ec;padding:25px 0;border-bottom:1px solid #c9d9c666;font:11px Console,Arial,sans-serif}.sect-header>span:last-child{font-size:9px;opacity:.7}.sect-index{position:fixed;left:24px;top:50%;transform:translateY(-50%);flex-direction:column;gap:20px;color:#e5eadf;z-index:12}.sect-index a{padding:7px;min-height:40px;writing-mode:vertical-rl;border-right:1px solid #dae5d261;gap:9px;font:13px Manuscript,Georgia,serif}.sect-index a svg{display:none}.sect-index a[aria-current=location]{border-color:#cf7766;color:#f0c2a6}.sect-arrival{min-height:700px;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:36px;padding:60px 0;color:#f4f6ec}.sect-introduction{position:relative;padding:30px 35px;background:#f4f6eced;color:var(--ink);border-top:5px solid #536b4e;border-bottom:5px solid #536b4e}.sect-introduction h1{font-size:84px}.red-seal{position:absolute;right:23px;top:20px;border:2px solid #ab3b2c;font:16px Manuscript,serif;padding:6px 5px;color:#ab3b2c;transform:rotate(-7deg)}.sect-swordsman{display:flex;align-items:center;justify-content:center;position:relative}.sect-swordsman .character{width:340px;height:340px}.vertical-caption{writing-mode:vertical-rl;font:10px Console,Arial,sans-serif;position:absolute;right:0;top:0;opacity:.75}.scroll-cue{grid-column:1/-1;display:flex;justify-content:center;gap:15px;font:11px Console,Arial,sans-serif;color:#f4f6ec}.manuscript{background:var(--paper);box-shadow:0 10px 50px #0b1f2b40;margin:30px 0 90px}.manuscript-inner{padding:65px 55px}.scroll-roller{height:19px;margin:0 -12px;background:linear-gradient(90deg,#41493b 0 3%,#b8b897 3% 97%,#41493b 97%);border-block:3px solid #73765f}.technique-chapter{position:relative;padding:45px 0 45px 45px;border-top:1px solid #b8c1ac}.chapter-seal{position:absolute;left:0;top:48px;display:grid;place-items:center;border:1px solid var(--second);color:var(--second);width:28px;height:35px;font:15px Manuscript,serif}.ink-study{display:grid;grid-template-columns:1.1fr 1fr;align-items:start;gap:30px}.ink-study .project-media{border:1px solid #9fae98;padding:5px;background:#fff}.ink-study .project-copy h3{font-size:31px;margin-top:13px}.ink-study .project-description{font-size:13px}.ink-study .tags li{border:0;border-bottom:1px solid var(--line);padding-left:0;margin-right:8px}.technique-chapter:nth-child(even) .project-media{order:2}.sect-annals{display:grid;grid-template-columns:1.1fr .9fr;gap:36px;background:#eff4e9;padding:50px 45px;border-block:7px solid #4d6750}.discipline-branches .skill-group{border-left:2px solid #698c68;padding:15px 0 18px 22px;position:relative}.discipline-branches .skill-group::before{content:'';width:10px;height:10px;border:2px solid #4e805e;background:var(--paper);position:absolute;left:-6px;top:20px;transform:rotate(45deg)}.daily-chronicle .section-heading h2{font-size:32px}.tournament-record{margin:70px 0;padding:40px 45px;background:#f4f6ecef;border-left:5px solid #9b4640}.sect-correspondence{background:var(--paper);padding:45px}.murim-layout .colophon{color:#edf3e7}
/* Astronaut: viewport hero followed by a split flight-console wall. */
body[data-world=astronaut]{--ink:#e5f3f5;--muted:#9bb9c2;--paper:#091c23;--accent:#a8e0df;--second:#e9b56a;--line:#3f6975;--heading:Console,Arial,sans-serif}.astronaut-layout{padding-left:160px}.orbit-top{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:23px 45px;background:#0b1b27df;border-bottom:1px solid #52778b;font:10px Console,Arial,sans-serif}.orbit-top>span{display:flex;align-items:center;gap:10px}.flight-directory{position:fixed;left:0;top:0;bottom:0;width:150px;padding:96px 13px 30px;background:#0b1b24e8;border-right:1px solid var(--line);z-index:10}.flight-links{flex-direction:column;gap:18px}.flight-links a{padding:10px 8px;font-size:11px}.flight-links .nav-num{display:none}.flight-links a[aria-current=location]{background:#173c46;border-left:2px solid var(--accent);color:var(--accent)}.mission-rule{display:block;height:1px;background:#557681;margin:45px 7px 24px}.directory-progress{font:8px Console,sans-serif;color:var(--muted);padding:7px}.orbital-arrival{min-height:720px;padding:60px 55px 30px;display:grid;grid-template-columns:1.2fr .8fr;gap:45px;align-items:center;background:linear-gradient(90deg,#061620ee 0 40%,#0616204d 70%,transparent)}.crew-introduction h1{font-size:82px}.crew-code{display:flex;gap:30px;align-items:center;font:10px Console,sans-serif;color:#9cc6d1;padding-bottom:18px;border-bottom:1px solid #4e7884;max-width:470px}.crew-code b{font-size:15px;color:#eac393}.eva-portrait{align-self:end;margin-bottom:60px;display:flex;flex-direction:column;align-items:center;gap:20px}.eva-portrait .character{width:290px;height:290px;animation:float-eva 10s ease-in-out infinite}.crew-badge{display:flex;gap:13px;align-items:center;padding:12px 16px;background:#06141ce8;border:1px solid #6492a0;font:10px/1.7 Console,sans-serif;max-width:270px}.crew-badge .photo{width:40px;height:40px;border-radius:2px}.mission-summary{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr 1.7fr;border:1px solid #547c8b;background:#09212be3}.mission-summary>div{padding:17px 25px;display:flex;align-items:center;justify-content:space-between;gap:15px;border-right:1px solid #547c8b}.mission-summary span{font:9px Console,sans-serif;color:var(--muted)}.mission-summary strong{font:20px Console,sans-serif}.mission-deck{padding:55px 45px;background:#061720fa;display:grid;grid-template-columns:minmax(0,1.7fr) minmax(250px,1fr);gap:36px;border-top:8px solid #7d919a}.payload-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.payload{background:#0b2933;border:1px solid #3f6d77;border-top:3px solid #9dcad1}.payload .project-copy{padding:19px}.payload h3{font-size:26px}.payload .project-description{font-size:13px}.payload .actions a{font-size:9px;padding:7px 8px;min-height:37px}.payload .project-meta{font-size:9px}.system-racks{gap:0;border-top:1px solid var(--line)}.system-racks .skill-group{padding:23px 0;border-bottom:1px solid var(--line)}.system-racks .skill-heading{gap:8px}.system-racks .skill-heading h3{font-size:15px}.system-racks .skill-number{display:none}.system-racks .skill-items li{background:#16343e;border:1px solid #416470;font:10px Console,sans-serif;padding:6px}.flight-log{margin-top:45px;border-top:4px solid #57727c;padding-top:28px}.flight-log h2{font-size:27px}.flight-log .actions a{font-size:9px}.expedition{margin-top:60px;border-top:2px solid #748c93;padding-top:35px}.orbital-comms{background:#0e252cf5;padding:55px 45px;border-top:5px solid #c3a476}.astronaut-layout .colophon{padding:25px 45px;background:#071a23f5}.astronaut-layout .review-return{left:8px}
/* Halloween: a portrait hall, small talisman shelf, and asymmetric cabinet archive. */
body[data-world=halloween]{--heading:Manuscript,Georgia,serif;--ink:#f0eadf;--muted:#b9afa8;--paper:#231c23;--accent:#c1cda2;--second:#c99660;--line:#6d6461}.halloween-layout{max-width:1420px;margin:auto;padding:0 65px}.mansion-header{display:flex;justify-content:space-between;align-items:center;padding:27px 0;border-bottom:1px solid #9d8065;font:16px Manuscript,Georgia,serif}.mansion-header>span{display:flex;align-items:center;gap:12px}.mansion-directory{justify-content:center;margin:0 auto;padding:15px 0;border-bottom:1px solid #796651;font:11px Manuscript,Georgia,serif}.mansion-directory .nav-num,.mansion-directory svg{display:none}.mansion-directory a{font-family:Manuscript,serif;font-size:14px;color:#ded8c8}.portrait-hall{min-height:670px;display:grid;grid-template-columns:.85fr 1.15fr;gap:75px;align-items:center;padding:65px 50px 75px;background:linear-gradient(90deg,#1b151984,#1b1519e6 55%);border-bottom:1px solid #8c735a}.haunted-frame{position:relative;width:100%;max-width:355px;aspect-ratio:.76;border:12px ridge #a88f67;box-shadow:0 0 0 2px #231b1a,0 0 0 6px #685848,0 18px 40px #0006;justify-self:center;background:#273335}.haunted-frame>.photo{width:100%;height:100%;object-fit:cover;border-radius:0;border:0;filter:grayscale(.65) sepia(.25) brightness(.67)}.spectral-figure{position:absolute;inset:10% 0 0;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .8s}.spectral-figure .character{width:280px;height:280px}.haunted-frame:hover .spectral-figure{opacity:.9}.haunted-frame:hover>.photo{opacity:.25;transition:opacity .8s}.frame-plaque{position:absolute;bottom:-47px;left:50%;transform:translateX(-50%);white-space:nowrap;background:#c2ab7a;color:#332a25;padding:7px 18px;font:10px Console,sans-serif;border:2px ridge #b2a27b}.mansion-intro h1{font-size:84px}.mansion-intro .bio{font-size:16px}.candle-row{grid-column:1/-1;display:flex;justify-content:center;gap:42px;margin-top:25px}.candle-row i{position:relative;width:11px;height:30px;background:#d4bea1;border-bottom:3px solid #8c7050}.candle-row b{position:absolute;top:-17px;left:3px;width:6px;height:13px;background:#ffe9b7;border-radius:60% 60% 30% 30%;box-shadow:0 0 15px #e9b86c;animation:flame 5s ease-in-out infinite}.candle-row i:nth-child(even) b{animation-delay:-2s}.talisman-shelf{padding:55px 40px;background:#282026f2;border-bottom:12px double #867058}.talisman-shelf .section-heading{margin-bottom:25px}.talisman-collection{grid-template-columns:repeat(5,minmax(0,1fr));gap:22px}.talisman-collection .skill-heading{flex-wrap:wrap;gap:8px}.talisman-collection .skill-heading h3{font-size:18px;width:100%;min-height:45px}.talisman-collection .skill-count{margin-left:0}.talisman-collection .skill-items{display:block}.talisman-collection .skill-items li{padding:5px 0;font-size:11px;border-color:#766c613b}.curiosity-cabinet{padding:60px 40px;background:#1e1a20f5}.cabinet-collection{display:grid;grid-template-columns:1.15fr .85fr;gap:42px 35px;align-items:start}.cabinet-item{border:1px solid #75674d;padding:12px;position:relative;background:#342931}.cabinet-item:first-child{grid-column:1/-1}.cabinet-item:first-child .project{display:grid;grid-template-columns:1.25fr 1fr;gap:30px;align-items:center}.cabinet-item:nth-child(3){margin-top:50px}.cabinet-item:nth-child(5){margin-top:30px}.cabinet-plate{display:inline-block;position:absolute;top:-11px;left:25px;background:#bfa67a;color:#2a2724;border:1px solid #8b7659;padding:3px 13px;font:9px Console,sans-serif;z-index:1}.haunted-work .project-copy{padding:24px 14px 9px}.haunted-work .project-media{border:5px ridge #857052;background:#fff}.haunted-work h3{font-size:34px}.haunted-work .actions a{border-color:#9b8766;font:11px Manuscript,serif}.haunted-work .tags li{color:#d1bfaa;font-size:9px;border-color:#726050}.mansion-epilogue{display:grid;grid-template-columns:1fr 1fr;gap:45px;padding:50px 40px;background:#272526f2;border-block:12px double #827259}.mansion-epilogue h2{font-size:33px}.summoning-letter{padding:65px 40px;background:#211b21f5}.summoning-letter .contact-title h2{font-size:60px}.summoning-letter .contact-links>*{font-family:Manuscript,Georgia,serif}.halloween-layout .colophon{background:#231c23f5;padding-inline:40px}
