/* A single scale keeps all typography 20% larger at every breakpoint. */
:root{--font-scale:1.2;color-scheme:dark;--ink:#ece8dd;--muted:#9eaaa4;--gold:#c8ad7d;--edge:rgba(210,193,155,.2);--serif:'Cinzel',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{font:calc(14px * var(--font-scale)) var(--sans);color:var(--ink);background:#152225}button,a,input{ -webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{font:inherit;color:inherit;cursor:pointer}button{background:none;border:0}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:5px}button:hover,a:hover{color:#f3d6a1}#world,#world canvas,.vignette,.world-labels{position:fixed;inset:0;width:100%;height:100%}#world canvas{display:block;outline:0;touch-action:none}.vignette{pointer-events:none;background:linear-gradient(90deg,rgba(9,20,22,.72),transparent 36%,transparent 84%,rgba(9,20,22,.18)),linear-gradient(0deg,rgba(9,17,18,.96),transparent 26%,transparent 80%,rgba(9,17,18,.55));z-index:1}.ui{position:fixed;z-index:3;transition:opacity .6s,transform .6s}.topbar{inset:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:28px 3.2%;height:110px;gap:35px}.identity{display:flex;align-items:center;gap:14px;letter-spacing:2.8px;font:600 calc(19px * var(--font-scale)) var(--serif);flex-shrink:0}.site-logo{width:44px;height:44px;object-fit:contain;flex-shrink:0}.identity small{display:block;font:calc(9px * var(--font-scale)) var(--sans);letter-spacing:2.6px;color:var(--muted);margin-top:6px}.topbar nav{display:flex;gap:31px;height:100%;align-items:center}.nav-link{font-size:calc(12px * var(--font-scale));position:relative;color:#aab3ae;padding:12px 0}.nav-link.active{color:var(--gold)}.nav-link.active:after{content:'';position:absolute;bottom:0;left:calc(50% - 2px);width:4px;height:4px;background:var(--gold);transform:rotate(45deg)}.contact-link{font-size:calc(12px * var(--font-scale));border-bottom:1px solid var(--edge);padding:10px 0;white-space:nowrap}.contact-link span{color:var(--gold);margin-left:15px}.intro{left:5.2%;top:24%;width:340px;pointer-events:none}.intro>*{pointer-events:auto}.eyebrow{display:flex;align-items:center;gap:10px;font-size:calc(9px * var(--font-scale));letter-spacing:2.7px;color:var(--gold);font-weight:600}.eyebrow>span{width:22px;height:1px;background:var(--gold)}h1{font:400 clamp(calc(38px * var(--font-scale)),calc(4.1vw * var(--font-scale)),calc(67px * var(--font-scale)))/1.16 var(--serif);letter-spacing:-1.5px;margin:25px 0 17px;text-shadow:0 3px 40px #0005}h1 em{font-style:normal;color:#dbc49b}.ornament{display:flex;align-items:center;gap:8px;width:146px;color:var(--gold);font-size:calc(13px * var(--font-scale));margin:22px 0}.ornament i{height:1px;background:linear-gradient(90deg,#c8ad7d60,transparent);flex:1}.ornament i:first-child{background:linear-gradient(90deg,transparent,#c8ad7d60)}.intro p{font-size:calc(17px * var(--font-scale));line-height:1.7;margin:0;color:#d2d7ce;font-weight:400}.intro .intro-detail{font-size:calc(12px * var(--font-scale));line-height:1.9;color:#96a69f;margin-top:14px}.explore-button{border:1px solid #c8ad7d70;background:linear-gradient(135deg,#b69b5928,#7e693119);padding:17px 22px;margin-top:26px;width:232px;text-align:left;font:calc(11px * var(--font-scale)) var(--serif);letter-spacing:1px;transition:.25s}.explore-button span{float:right;font:calc(18px * var(--font-scale)) var(--sans);line-height:14px}.explore-button:hover{background:#b69b593b;border-color:var(--gold);transform:translateY(-2px)}.intro-caption{display:block;color:#71867e;font-size:calc(8px * var(--font-scale));letter-spacing:1.8px;margin:16px 0 0 1px}.intro.explored{opacity:0;transform:translateX(-24px);pointer-events:none}.intro.explored>*{pointer-events:none}.world-tools{top:130px;right:3.2%;display:flex;flex-direction:column;align-items:flex-end;gap:18px}.realm-status{font-size:calc(8px * var(--font-scale));letter-spacing:1.7px;color:#aeb4a4;display:flex;align-items:center;gap:8px}.live-dot{background:#abc895;width:4px;height:4px;border-radius:50%;box-shadow:0 0 12px #b4e39e}.tool-buttons{display:flex;gap:8px}.icon-button{width:35px;height:35px;display:grid;place-items:center;border:1px solid var(--edge);background:#10202066;transition:.2s;color:#c4c2af}.icon-button:hover{background:#c8ad7d1a;border-color:#c8ad7d88}.icon-button svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round}.region-name{font:calc(10px * var(--font-scale)) var(--serif);letter-spacing:4px;color:#b7c7a776;text-align:center;pointer-events:none}.region-name span{display:block;font:calc(7px * var(--font-scale)) var(--sans);letter-spacing:2px;margin-top:7px;opacity:.65}.radiant-name{left:35%;bottom:29%}.dire-name{right:18%;top:24%;color:#d8a2878a}.bottom-ui{left:3.2%;right:3.2%;bottom:0}.destination-dock{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--edge);background:linear-gradient(110deg,#172624dd,#0e191bd9);backdrop-filter:blur(18px)}.destination-dock button{display:flex;gap:16px;align-items:center;min-width:0;padding:22px 21px;text-align:left;position:relative;border-right:1px solid var(--edge);transition:.3s}.destination-dock button:last-child{border-right:0}.destination-dock button:hover,.destination-dock button.selected{background:#bbab6c12}.destination-dock button.selected:before{content:'';position:absolute;top:-1px;left:20%;right:20%;height:1px;background:var(--gold);box-shadow:0 0 15px #dfc77b}.dock-icon{font:calc(30px * var(--font-scale)) Georgia,serif;color:var(--gold);width:28px;text-align:center}.destination-dock button>span:nth-child(2){font-size:calc(12px * var(--font-scale));line-height:1.4}.destination-dock small{display:block;font-size:calc(7px * var(--font-scale));letter-spacing:1.9px;color:#a8af9c;margin-bottom:7px}.dock-arrow{margin-left:auto;align-self:center;color:#9b9c86;font-size:calc(16px * var(--font-scale))}.footer-line{height:53px;display:flex;align-items:center;justify-content:space-between;font-size:calc(9px * var(--font-scale));color:#8b9990}.controls-hint{display:flex;gap:9px;align-items:center}.controls-hint i{font-style:normal;color:#596e65}.mouse-icon{width:9px;height:13px;border:1px solid #879386;border-radius:5px;position:relative}.mouse-icon:before{content:'';position:absolute;top:2px;left:3px;height:3px;width:1px;background:#879386}.fan-note{font-size:calc(7px * var(--font-scale));letter-spacing:1.7px;color:#62766c}.help-button{font:calc(11px * var(--font-scale)) var(--serif);display:flex;gap:8px}.help-button span{font:calc(9px * var(--font-scale)) var(--sans)}.exploration{bottom:167px;left:3.2%;display:flex;align-items:center;gap:10px;color:#a7b09f;font-size:calc(7px * var(--font-scale));letter-spacing:1.7px}.small-diamond{font-size:calc(26px * var(--font-scale));color:var(--gold)}.exploration small{display:block;letter-spacing:.2px;font-size:calc(10px * var(--font-scale));color:#899f91;margin-top:6px}.exploration b{font-weight:400;color:#d6c394}.progress-pips{display:flex;gap:5px;margin-left:18px}.progress-pips i{width:5px;height:5px;border:1px solid #c8ad7d50;transform:rotate(45deg)}.progress-pips i.visited{background:var(--gold);box-shadow:0 0 8px #c8ad7d77}.minimap{right:3.2%;bottom:166px;width:156px;height:169px;border:1px solid var(--edge);background:#0b191c88;backdrop-filter:blur(12px);padding:11px 9px}.minimap-heading{display:flex;align-items:center;justify-content:space-between;font-size:calc(7px * var(--font-scale));letter-spacing:1.5px;color:#b6b69f;height:13px}.minimap-heading button{font-size:calc(19px * var(--font-scale));padding:0;line-height:15px}.minimap svg{display:block;width:130px;height:117px;margin:auto;opacity:.85}.map-point{position:absolute;border:1px solid #c4ad77aa;color:#f0deb3;background:#233832;width:15px;height:15px;border-radius:50%;font-size:calc(7px * var(--font-scale));padding:0;transition:.2s}.map-point:hover{transform:scale(1.25);background:#8b7947}.map-point.bio{left:39px;top:109px}.map-point.publications{left:43px;top:57px}.map-point.experience{left:104px;top:66px}.map-point.research{left:97px;top:114px}.map-north{position:absolute;bottom:9px;left:74px;font:calc(7px * var(--font-scale)) var(--serif);color:#c5b28b}.world-labels{z-index:2;pointer-events:none}.landmark{position:absolute;left:0;top:0;transform:translate(-50%,-100%);display:flex;flex-direction:column;align-items:center;pointer-events:auto;will-change:left,top;padding:15px 17px 0;transition:opacity .2s;isolation:isolate}.landmark .marker-gem{position:relative;width:28px;height:28px;display:grid;place-items:center;font:calc(11px * var(--font-scale)) var(--serif);color:#f6df9f;background:#193331d9;border:1px solid #d6b66a;transform:rotate(45deg);box-shadow:0 0 15px #c1b56b30;transition:.25s}.marker-gem b{transform:rotate(-45deg);font-weight:400}.landmark .marker-name{background:#102022d9;padding:7px 11px;margin-top:13px;font-size:calc(8px * var(--font-scale));letter-spacing:2px;color:#e1d5b3;border:1px solid #b8a77940;white-space:nowrap;backdrop-filter:blur(5px)}.landmark .marker-line{height:24px;width:1px;background:linear-gradient(#b5a77690,#b5a77600)}.landmark:hover .marker-gem{background:#9a8654;box-shadow:0 0 25px #c1b56b55;transform:rotate(45deg) scale(1.12)}.landmark.visited .marker-gem:after{content:'';position:absolute;right:-4px;top:-4px;width:5px;height:5px;background:#e9ca83}.content-dialog{position:fixed;inset:110px 30px 155px auto;max-height:calc(100dvh - 265px);height:auto;width:490px;max-width:calc(100vw - 30px);margin:0;padding:40px 35px;background:linear-gradient(150deg,#1c2c2bf5,#101c20fa);border:1px solid #b9aa7355;box-shadow:0 20px 100px #0008;color:var(--ink);overflow:auto;scrollbar-width:thin;scrollbar-color:#837758 #1b2a29;backdrop-filter:blur(24px);animation:panel-in .35s ease-out}.content-dialog::backdrop{background:transparent}.close-panel{position:absolute;right:14px;top:13px;color:#b9b79e;border:1px solid var(--edge);width:29px;height:29px;font-size:calc(12px * var(--font-scale))}.content-dialog h2,.help-dialog h2{font:400 calc(30px * var(--font-scale))/1.3 var(--serif);color:#dfc89f;margin:21px 0 19px;letter-spacing:-.6px}.content-dialog h3{font:400 calc(18px * var(--font-scale))/1.45 var(--serif);color:#dfd8be;margin:23px 0 10px}.content-dialog p,.help-dialog p{color:#a8b9b0;font-size:calc(13px * var(--font-scale));line-height:1.85}.content-dialog p strong{font-weight:500;color:#e0ded0}.content-dialog .profile{width:72px;height:83px;object-fit:cover;float:right;border:1px solid #c8ad7d66;margin:0 0 16px 17px;filter:saturate(.8)}.panel-tag{font-size:calc(8px * var(--font-scale));letter-spacing:1.8px;color:#8bb39e;border-bottom:1px solid var(--edge);padding-bottom:18px}.panel-links{display:flex;gap:9px;flex-wrap:wrap;margin:23px 0}.panel-links a,.paper-links a{font-size:calc(10px * var(--font-scale));padding:8px 11px;border:1px solid var(--edge);color:#d9c393}.panel-links a:hover,.paper-links a:hover{background:#c8ad7d18}.interest,.paper{padding:19px 0;border-top:1px solid var(--edge)}.interest h3,.paper h3{margin:0 0 8px;font:500 calc(14px * var(--font-scale))/1.6 var(--sans)}.interest p{margin:0}.interest .number{float:left;font:calc(11px * var(--font-scale)) var(--serif);color:#b39d70;margin:4px 15px 25px 0}.interest a{color:#d9c393;font-size:calc(10px * var(--font-scale));display:inline-block;margin-top:10px}.paper-meta{font-size:calc(8px * var(--font-scale));letter-spacing:1.5px;color:var(--gold);display:flex;gap:10px;margin-bottom:8px}.paper-links{display:flex;gap:7px;margin-top:12px}.paper-links a{font-size:calc(9px * var(--font-scale));padding:5px 8px}.paper .authors{font-size:calc(10px * var(--font-scale));color:#8fa79a;line-height:1.6}.paper-search{width:100%;border:1px solid var(--edge);padding:11px 13px;background:#0a191a99;color:var(--ink);font:calc(11px * var(--font-scale)) var(--sans);margin:15px 0 12px}.paper-filters{display:flex;gap:6px;margin-bottom:20px;flex-wrap:wrap}.paper-filters button{font-size:calc(9px * var(--font-scale));color:#b0b8a5;padding:6px 9px;border:1px solid var(--edge)}.paper-filters button.active{color:#e1c184;border-color:#c8ad7d80;background:#c8ad7d13}.result-count{font-size:calc(9px * var(--font-scale));color:#8fa79a;margin:6px 0 12px}.timeline-item{position:relative;border-left:1px solid #9e95634d;padding:0 0 24px 23px;margin-left:4px}.timeline-item:before{content:'';position:absolute;left:-4px;top:5px;width:6px;height:6px;transform:rotate(45deg);background:var(--gold)}.timeline-item .date{font-size:calc(9px * var(--font-scale));color:#baae89;letter-spacing:1px}.timeline-item h3{font:500 calc(14px * var(--font-scale)) var(--sans);margin:8px 0 3px}.timeline-item p{font-size:calc(11px * var(--font-scale));margin:0}.timeline-title{font-size:calc(9px * var(--font-scale));letter-spacing:2px;color:#d0b984;margin:26px 0 24px}.news-item{border-top:1px solid var(--edge);padding:13px 0;font-size:calc(11px * var(--font-scale));line-height:1.7;color:#a8b9b0}.news-item small{font-size:calc(8px * var(--font-scale));display:block;color:#c3ad7e;letter-spacing:1px;margin-bottom:4px}.help-dialog{position:fixed;inset:0;margin:auto;max-height:85dvh;width:480px;max-width:calc(100% - 30px);padding:40px;background:#182827;border:1px solid #c8ad7d66;color:var(--ink);box-shadow:0 20px 100px #000a;overflow:auto}.help-dialog::backdrop{background:#040e13b3;backdrop-filter:blur(8px)}.help-dialog dl{display:grid;grid-template-columns:1.1fr 1fr;gap:12px;font-size:calc(11px * var(--font-scale));line-height:1.6;margin:24px 0}.help-dialog dt{color:#d1bd93}.help-dialog dd{margin:0;color:#a6b7a9}.help-dialog .credits{font-size:calc(10px * var(--font-scale));border-top:1px solid var(--edge);padding-top:18px}#toast{position:fixed;z-index:8;bottom:170px;left:50%;transform:translate(-50%,10px);background:#182927ed;padding:12px 22px;border:1px solid #c8ad7d55;color:#d8c99f;font-size:calc(11px * var(--font-scale));pointer-events:none;opacity:0;transition:.3s;max-width:90%;text-align:center}#toast.visible{opacity:1;transform:translate(-50%,0)}#loading{position:fixed;inset:0;z-index:20;background:#142224;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:24px;font-size:calc(9px * var(--font-scale));letter-spacing:3px;color:var(--gold);transition:opacity .8s}#loading .loading-rune{font-size:calc(58px * var(--font-scale));animation:rune 3s ease-in-out infinite}#loading i{width:140px;height:1px;background:linear-gradient(90deg,transparent,#c8ad7d,transparent);animation:rune 1.5s ease-in-out infinite}#loading.loaded{opacity:0;pointer-events:none}.no-webgl{position:fixed;z-index:25;inset:25% 20%;padding:40px;background:#142224;border:1px solid var(--gold);line-height:2}#restore-ui{display:none;position:fixed;z-index:15;bottom:22px;left:50%;transform:translateX(-50%);font-size:calc(10px * var(--font-scale));color:#c3b58f;background:#142424b0;padding:10px 16px;border:1px solid var(--edge)}kbd{font:calc(9px * var(--font-scale)) var(--sans);border:1px solid var(--edge);padding:2px 4px;margin-left:6px}.cinematic .ui,.cinematic .world-labels{opacity:0;pointer-events:none}.cinematic .world-labels *{pointer-events:none}.cinematic #restore-ui{display:block}.panel-open .intro{opacity:0;pointer-events:none}.panel-open .intro>*{pointer-events:none}.panel-open .dire-name{opacity:0}.panel-open .world-tools{opacity:0;pointer-events:none}.panel-open .landmark{opacity:0!important;pointer-events:none}.fallback .intro{top:23%}.fallback #loading{display:none}@keyframes rune{50%{opacity:.4;transform:scale(.92)}}@keyframes panel-in{from{opacity:0;transform:translateX(22px)}to{opacity:1;transform:translateX(0)}}@media(min-width:1700px){.intro{top:28%}.destination-dock button{padding:26px 30px}.destination-dock small{font-size:calc(8px * var(--font-scale))}.destination-dock button>span:nth-child(2){font-size:calc(14px * var(--font-scale))}.exploration{bottom:179px}.minimap{bottom:179px}}@media(max-width:1100px){.topbar nav{gap:20px}.topbar{gap:20px}.identity{font-size:calc(16px * var(--font-scale))}.contact-link{font-size:calc(10px * var(--font-scale))}.intro{left:4%;width:295px;top:25%}h1{font-size:calc(46px * var(--font-scale))}.intro p{font-size:calc(15px * var(--font-scale))}.intro .intro-detail{font-size:calc(11px * var(--font-scale))}.destination-dock button{padding:19px 13px;gap:10px}.destination-dock button>span:nth-child(2){font-size:calc(10px * var(--font-scale))}.dock-icon{font-size:calc(25px * var(--font-scale))}.destination-dock small{font-size:calc(6px * var(--font-scale));letter-spacing:1.2px}.dock-arrow{display:none}.fan-note{display:none}.radiant-name{left:38%;bottom:31%}.dire-name{right:19%}.content-dialog{width:440px;padding:33px 27px}.minimap{transform:scale(.85);transform-origin:bottom right}}@media(max-width:720px){.topbar{height:82px;padding:19px 21px;align-items:flex-start}.identity{font-size:calc(14px * var(--font-scale));gap:10px;letter-spacing:2px}.site-logo{width:34px;height:34px}.identity small{font-size:calc(6px * var(--font-scale));letter-spacing:1.7px}.contact-link{font-size:calc(10px * var(--font-scale));margin-top:-2px}.topbar nav{position:absolute;top:75px;left:22px;right:22px;justify-content:space-between;height:36px;gap:12px;border-top:1px solid var(--edge)}.nav-link{font-size:calc(10px * var(--font-scale))}.intro{left:26px;top:146px;width:230px}h1{font-size:calc(36px * var(--font-scale));line-height:1.13;margin:16px 0 12px;letter-spacing:-1px}.eyebrow{font-size:calc(7px * var(--font-scale));letter-spacing:1.6px}.eyebrow>span{width:14px}.ornament{margin:12px 0;width:95px}.intro p{font-size:calc(12px * var(--font-scale));line-height:1.5}.intro .intro-detail{display:none}.explore-button{font-size:calc(8px * var(--font-scale));letter-spacing:.7px;width:175px;padding:13px 15px;margin-top:17px}.intro-caption{font-size:calc(6px * var(--font-scale));letter-spacing:1.1px;margin-top:12px}.world-tools{right:21px;top:140px;gap:10px}.realm-status{font-size:calc(6px * var(--font-scale));letter-spacing:1px}.tool-buttons{flex-direction:column;gap:7px}.icon-button{width:29px;height:29px}.icon-button svg{width:13px;height:13px}.bottom-ui{left:15px;right:15px}.destination-dock{grid-template-columns:repeat(2,1fr)}.destination-dock button{padding:13px 12px;gap:10px}.destination-dock button:nth-child(-n+2){border-bottom:1px solid var(--edge)}.destination-dock button:nth-child(2){border-right:0}.destination-dock small{font-size:calc(5.5px * var(--font-scale));letter-spacing:1px;margin-bottom:4px}.destination-dock button>span:nth-child(2){font-size:calc(9px * var(--font-scale))}.dock-icon{font-size:calc(23px * var(--font-scale));width:24px}.footer-line{height:39px;font-size:calc(7px * var(--font-scale))}.controls-hint{gap:5px;font-size:calc(7px * var(--font-scale))}.controls-hint i:last-of-type{display:none}.help-button span{display:none}.minimap{display:none}.exploration{bottom:184px;left:24px;font-size:calc(6px * var(--font-scale));gap:7px}.exploration small{font-size:calc(8px * var(--font-scale))}.progress-pips{margin-left:8px}.small-diamond{font-size:calc(22px * var(--font-scale))}.region-name{display:none}.landmark{padding:8px 8px 0}.landmark .marker-gem{width:23px;height:23px;font-size:calc(9px * var(--font-scale))}.landmark .marker-name{font-size:calc(6px * var(--font-scale));letter-spacing:1px;padding:5px 6px;margin-top:9px}.landmark .marker-line{height:17px}.content-dialog{inset:123px 12px 174px;max-height:calc(100dvh - 297px);width:auto;max-width:none;padding:29px 23px}.content-dialog h2{font-size:calc(25px * var(--font-scale))}.content-dialog p{font-size:calc(12px * var(--font-scale))}.content-dialog .eyebrow{font-size:calc(7px * var(--font-scale))}.panel-open .exploration{opacity:0}.panel-open .world-tools{display:none}#toast{bottom:191px;font-size:calc(10px * var(--font-scale));width:max-content;max-width:calc(100% - 40px)}.help-dialog{padding:33px 25px}.help-dialog h2{font-size:calc(25px * var(--font-scale))}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
.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}
.content-dialog{z-index:7}.panel-open .minimap{opacity:0;pointer-events:none}.panel-open .region-name{opacity:0}
@media(max-width:720px){.intro{top:142px}.intro h1{font-size:calc(32px * var(--font-scale));margin:15px 0 14px}.intro .ornament,.intro-caption{display:none}.intro p{font-size:calc(11px * var(--font-scale));line-height:1.6}.explore-button{margin-top:16px}body:has(#intro:not(.explored)) .landmark{opacity:0!important;pointer-events:none}.vignette{background:linear-gradient(0deg,#091112f5,transparent 27%,transparent 60%,#09141677)}}
@keyframes mobile-panel-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:720px){.content-dialog{animation:mobile-panel-in .25s ease-out}}
.landmark .marker-name{text-transform:uppercase;letter-spacing:1.6px}.architecture-caption{left:3.2%;bottom:223px;font:calc(18px * var(--font-scale))/1.5 var(--serif);color:#ddd3ba;max-width:440px;text-shadow:0 2px 15px #0009;pointer-events:none}.architecture-caption:empty{display:none}.architecture-caption small{display:block;font:calc(8px * var(--font-scale)) var(--sans);letter-spacing:2.4px;color:var(--gold);margin-bottom:7px}.arriving .landmark{opacity:0!important;pointer-events:none}.arriving .region-name{opacity:0}.panel-open .intro{visibility:hidden}.destination-dock button>span:nth-child(2){font-size:calc(14px * var(--font-scale))}.destination-dock small{font-size:calc(7px * var(--font-scale))}.panel-open .world-tools{opacity:1;pointer-events:auto;right:auto;left:3.2%;top:135px;align-items:flex-start}
@media(max-width:720px){.content-dialog{inset:122px 10px max(10px,env(safe-area-inset-bottom));max-height:none;padding:24px 22px;overscroll-behavior:contain}.content-dialog h2{font-size:calc(27px * var(--font-scale));margin:14px 0}.architecture-caption{top:127px;left:23px;bottom:auto;font-size:calc(10px * var(--font-scale));max-width:80%}.architecture-caption small{font-size:calc(6px * var(--font-scale));letter-spacing:1.6px;margin-bottom:4px}.panel-open .world-tools{display:none}.destination-dock button>span:nth-child(2){font-size:calc(11px * var(--font-scale))}.destination-dock small{font-size:calc(5.5px * var(--font-scale))}.content-dialog .panel-tag{font-size:calc(7px * var(--font-scale));padding-bottom:12px}}
@media(max-height:680px) and (max-width:720px){.architecture-caption{display:none}}
.content-dialog h2:focus{outline:none}

.battle-button{display:flex;align-items:center;gap:9px;padding:11px 13px;border:1px solid #c8ad7d66;background:#122321d9;color:#ddd1b6;font-size:calc(10px * var(--font-scale));letter-spacing:.3px}.battle-button>span{font-size:calc(17px * var(--font-scale));color:var(--gold)}.battle-button kbd{font:calc(8px * var(--font-scale)) var(--sans);border:1px solid #c8ad7d40;padding:3px 4px;color:var(--muted)}.battle-button:hover{background:#314039}.battle-caption{display:none;left:3.2%;top:146px;pointer-events:none;max-width:270px}.watching-battle .battle-caption{display:grid;gap:12px}.battle-caption small{font-size:calc(8px * var(--font-scale));color:#bfc5a8;letter-spacing:3px}.battle-caption small span{margin:0 8px;color:var(--gold)}.battle-caption strong{font:calc(23px * var(--font-scale)) var(--serif);letter-spacing:1px}.battle-caption #battle-status{font-size:calc(9px * var(--font-scale));color:var(--gold)}.battle-description{font-size:calc(10px * var(--font-scale));color:#a2b1a6}.watching-battle .region-name,.watching-battle .landmark{opacity:0!important;pointer-events:none}.watching-battle .vignette{background:linear-gradient(0deg,#091112dd,transparent 28%,transparent 78%,#09141666)}.watching-battle .exploration{opacity:0;pointer-events:none}
@media(max-width:720px){.battle-button{padding:8px;font-size:calc(8px * var(--font-scale));gap:5px;max-width:132px}.battle-button kbd{display:none}.battle-caption{left:23px;top:147px;max-width:215px}.battle-caption strong{font-size:calc(17px * var(--font-scale))}.battle-caption small{font-size:calc(6px * var(--font-scale));letter-spacing:2px}.battle-caption #battle-status{font-size:calc(7px * var(--font-scale))}.battle-description{display:none}.watching-battle .world-tools{top:244px}.watching-battle .battle-button{display:none}.watching-battle .tool-buttons{flex-direction:row}}

@media(max-width:720px){
  .panel-open .bottom-ui,.panel-open .architecture-caption{display:none}
  .content-dialog>.close-panel{position:sticky;top:0;right:auto;display:grid;place-items:center;width:40px;height:40px;margin:-10px -10px -30px auto;z-index:2;background:#1c2c2b;box-shadow:0 2px 12px #101c2080}
  .content-dialog p{font-size:calc(14px * var(--font-scale));line-height:1.8}
  .content-dialog .eyebrow{max-width:calc(100% - 36px);line-height:1.7}
  .content-dialog .paper .authors{font-size:calc(11px * var(--font-scale));line-height:1.7}
  .content-dialog .timeline-item p{font-size:calc(13px * var(--font-scale))}
  .content-dialog .panel-links a,.content-dialog .paper-links a{font-size:calc(11px * var(--font-scale));padding:9px 11px}
  .content-dialog .paper-search{font-size:calc(16px * var(--font-scale));padding:13px}
  .content-dialog .paper-filters button{font-size:calc(11px * var(--font-scale));padding:8px 10px}
}

.timeline-organization{display:flex;align-items:center;gap:12px;margin:10px 0 8px;min-height:42px}.timeline-organization h3{margin:0}.organization-logo{width:42px;height:42px;object-fit:contain;flex-shrink:0;padding:0;background:transparent;border:0;border-radius:0}.timeline-organization+p{padding-left:54px}
@media(max-width:720px){.timeline-organization{gap:11px}.timeline-organization h3{font-size:calc(14px * var(--font-scale));line-height:1.45}.timeline-organization+p{padding-left:53px}}

/* Keep the larger type clear of adjacent controls and allow narrow content to wrap. */
.paper-links,.paper-meta{flex-wrap:wrap}
.content-dialog{overflow-wrap:break-word}
@media(max-width:359px){
  .identity small{max-width:115px;line-height:1.5}
}
@media(min-width:721px){
  .intro{top:21%}
  body:has(#intro:not(.explored)) .exploration{left:50%;transform:translateX(-50%);padding:8px 12px;background:#102022bf;border:1px solid var(--edge);backdrop-filter:blur(8px)}
}
@media(min-width:721px) and (max-height:850px){
  .intro{top:122px}
  .intro h1{line-height:1.05;margin:12px 0 10px}
  .intro .ornament{margin:10px 0}
  .intro p{line-height:1.5}
  .intro .intro-detail{line-height:1.6;margin-top:10px}
  .intro .explore-button{margin-top:16px;padding:13px 18px}
  .intro .intro-caption{margin-top:8px}
}
@media(min-width:721px) and (max-height:760px){
  .intro{top:120px;max-height:calc(100dvh - 286px);overflow:auto;padding-right:8px;scrollbar-width:thin;scrollbar-color:#837758 #1b2a29;pointer-events:auto}
  .intro.explored{pointer-events:none}
}
@media(min-width:721px) and (max-width:900px){
  .topbar{align-items:flex-start;padding-top:18px}
  .topbar nav{position:absolute;top:69px;left:3.2%;right:3.2%;height:36px;justify-content:space-between;border-top:1px solid var(--edge)}
}

/* First-open terminal reveal preserves the final line wrapping and semantic text. */
#panel-content{position:relative}
::highlight(panel-untyped){color:transparent;text-shadow:none;background-color:transparent}
.terminal-caret{position:absolute;left:0;top:0;width:7px;height:14px;background:var(--gold);box-shadow:0 0 9px #c8ad7d45;pointer-events:none;animation:terminal-blink .72s steps(1,end) infinite}
@keyframes terminal-blink{0%,65%{visibility:visible}66%,100%{visibility:hidden}}
.panel-typing [data-terminal-state="waiting"]{opacity:0;pointer-events:none}
.panel-typing [data-terminal-effect="region"][data-terminal-state="revealed"]{animation:terminal-region-in .2s ease-out}
.panel-typing [data-terminal-effect="logo"][data-terminal-state="revealed"]{animation:terminal-logo-in .52s cubic-bezier(.16,1,.3,1)}
.panel-typing [data-terminal-effect="box"][data-terminal-state="revealed"]{animation:terminal-box-in .44s cubic-bezier(.2,.75,.25,1)}
@keyframes terminal-region-in{from{opacity:0}to{opacity:1}}
@keyframes terminal-logo-in{from{opacity:0;transform:translateY(7px) scale(.84);filter:blur(5px)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes terminal-box-in{from{opacity:0;transform:translateY(5px);clip-path:inset(0 100% 0 0);box-shadow:0 0 10px #c8ad7d35}to{opacity:1;transform:translateY(0);clip-path:inset(0)}}
