*{box-sizing:border-box}
html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#14252b}
#world{position:fixed;inset:var(--topbar-height) 0 0;touch-action:none;cursor:grab}
#world:active{cursor:grabbing}
#world canvas{display:block;width:100%;height:100%;outline:none}
#world canvas:focus-visible{outline:2px solid #f4b179;outline-offset:-2px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
#loading{position:fixed;z-index:2;inset:calc(50% + var(--topbar-height)/2) 20px auto;margin:0;text-align:center;color:#f2e7cf;font:14px/1.5 Claus,system-ui,sans-serif;pointer-events:none}
#loading[data-failed]{white-space:normal}
[hidden]{display:none!important}
.city-tools{position:fixed;z-index:3;top:calc(var(--topbar-height) + 12px);right:var(--dock-edge);width:var(--dock-width);display:flex;gap:2px;padding:3px;background:#080808f2;border:1px solid #fff2d81c;border-radius:5px;font:13px Claus,system-ui;box-shadow:0 6px 24px #0002}
.city-tools a,.city-tools button{display:flex;align-items:center;justify-content:center;flex:1;min-width:0;min-height:44px;padding:0 9px;color:#fff2d8;background:transparent;border:0;text-decoration:none;font:inherit;border-radius:2px;cursor:pointer}
.city-tools :is(a,button):hover{background:#fff2d810}.city-tools :is(a,button)[aria-expanded="true"]{background:#fff2d8;color:#171611}.city-tools :focus{outline:none}.city-tools :focus-visible{box-shadow:inset 0 0 0 1px #f4b179}.city-tools :is(a,button){transition:background 160ms ease,color 160ms ease}
.city-fallback{position:fixed;z-index:3;top:calc(50% + var(--topbar-height)/2 + 38px);left:0;right:0;display:flex;justify-content:center;gap:10px;font:14px Claus,system-ui}
.city-fallback a,.city-fallback button{font:inherit;color:#fff2d8;background:#080808;border:1px solid #fff2d84d;border-radius:4px;padding:12px;min-height:44px;cursor:pointer;text-decoration:none}
.place-label{position:fixed;bottom:max(20px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);margin:0;max-width:80vw;padding:8px 13px;background:#080808df;color:#fff2d8;font:13px Claus,system-ui;border-radius:3px;pointer-events:none;z-index:2}
[data-render-mode="flat"] .world-detail{max-height:calc(100dvh - var(--topbar-height) - 84px - env(safe-area-inset-bottom))}
@media(max-width:420px){.city-tools a,.city-tools button{padding-inline:6px}.city-fallback{flex-wrap:wrap;padding-inline:12px}}

@font-face{font-family:Claus;src:url('/world-assets/assets/bricolage-grotesque-latin.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}
@font-face{font-family:ClausEditorial;src:url('/world-assets/assets/newsreader-latin.woff2') format('woff2');font-style:normal;font-weight:200 800;font-display:swap}
:root{--dock-edge:max(16px,env(safe-area-inset-right));--dock-width:min(374px,calc(100vw - 32px));--topbar-height:64px;--panel:#fff2d8;--ink:#14140f;--muted:#625f53;--line:#15150e24;--accent:#b63e19;--hover:#ec673a12;color-scheme:light}
html[data-world-appearance="daylight"]{--panel:#fff2d8;--ink:#14140f;--muted:#625f53;--line:#15150e24;--accent:#b63e19;--hover:#ec673a12;color-scheme:light}
.keyboard-explore{position:fixed;inset-block-start:16px;inset-inline-start:16px;z-index:10;transform:translateY(-180%);font:15px Claus,system-ui;padding:12px 16px;background:var(--panel);color:var(--ink);border:1px solid var(--accent)}
.keyboard-explore:not(:focus){transform:translateY(calc(-100% - var(--topbar-height) - 32px))}
.keyboard-explore:focus{transform:none}
.world-detail{position:fixed;z-index:4;inset-block-start:calc(var(--topbar-height) + 70px);inset-inline-end:var(--dock-edge);width:var(--dock-width);max-height:calc(100dvh - var(--topbar-height) - 86px - env(safe-area-inset-bottom));display:flex;flex-direction:column;overflow:hidden;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:5px;box-shadow:0 14px 40px #0004;font:14px/1.5 Claus,system-ui,sans-serif;transform-origin:top right;animation:detail-enter 220ms cubic-bezier(.22,1,.36,1)}
@keyframes detail-enter{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@keyframes detail-exit{to{opacity:0;transform:translateY(-5px)}}
.world-detail.is-leaving{animation:detail-exit 160ms cubic-bezier(.4,0,.2,1) forwards;pointer-events:none}
.detail-header{position:relative;flex:none;z-index:1;background:var(--panel);display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:22px 12px 16px 22px}
.detail-header>div{min-width:0}.detail-kind{font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin:0 0 7px}
.world-detail h1{font:500 clamp(24px,3vw,31px)/1.1 ClausEditorial,Georgia,serif;margin:0;overflow-wrap:anywhere;text-wrap:balance;outline:none}
.world-detail h2{font:550 12px/1.4 Claus,system-ui;margin:0 0 9px;color:var(--muted)}
.detail-body{padding:0 22px 22px;overflow:auto;min-height:0;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#15150e35 transparent;scrollbar-gutter:stable;touch-action:pan-y}.detail-body>p,.detail-body>dl,.detail-actions,.detail-parent,.detail-description{margin-block:16px 0}
.detail-summary{line-height:1.6;overflow-wrap:anywhere;white-space:pre-line;font-size:13px}.detail-parent{font-size:12px;color:var(--muted)}
.world-detail button,.world-detail input,.world-detail select{font:inherit;color:inherit}.world-detail button{cursor:pointer;background:transparent;border:1px solid var(--line);border-radius:3px;min-height:44px;padding:9px 12px}
.world-detail button:hover,.world-detail a:hover{background:var(--hover);color:var(--accent)}
.world-detail a{color:inherit;text-decoration:none;overflow-wrap:anywhere}.world-detail a:hover{text-decoration:underline;text-underline-offset:3px}
.world-detail :focus{outline:none}.world-detail :is(a,button,summary):focus-visible,.keyboard-explore:focus-visible{outline:1px solid var(--accent);outline-offset:2px}.world-detail :is(input,select):focus-visible{border-color:#72614b;box-shadow:none}.world-detail [tabindex="-1"]:focus{outline:none}
.world-detail .icon-button{display:grid;place-items:center;border:0;flex:0 0 44px;width:44px;height:44px;font:26px/1 system-ui;padding:0;margin-block-start:-9px}
.detail-actions{display:flex;gap:8px;flex-wrap:wrap}.detail-actions a{flex:1 1 auto;text-align:center;min-height:44px;padding:11px 12px;border:1px solid var(--line);border-radius:3px;font-size:12px}
.detail-actions .primary-action{background:var(--ink);color:var(--panel);border-color:var(--ink)}.detail-actions .primary-action:hover{background:var(--accent);color:var(--panel);text-decoration:none}
.detail-facts{display:grid;grid-template-columns:minmax(65px,.8fr) minmax(0,1.4fr);column-gap:12px;row-gap:9px;font-size:12px}.detail-facts dt{color:var(--muted)}.detail-facts dd{margin:0;overflow-wrap:anywhere;text-align:end}.detail-code{font:11px/1.6 ui-monospace,monospace;user-select:all}
.detail-section{margin-block-start:25px}.detail-section select,.detail-search input,.detail-search select{background:transparent;border:1px solid var(--line);border-radius:3px;min-height:44px;max-width:100%;padding:8px 10px}.detail-section select{width:100%;margin-block-end:8px;font-size:12px}
.detail-muted{font-size:11px;color:var(--muted);line-height:1.6;overflow-wrap:anywhere}.detail-row{padding:8px 0;min-height:58px}.detail-row+.detail-row{border-top:1px solid var(--line)}.detail-row .record-link{display:block;padding-block:5px;font-size:13px}.detail-row span{display:block}
.detail-parent a{display:inline-block;min-height:32px;padding-block:7px}.detail-section>.record-link{display:block;min-height:44px;padding-block:9px}
.detail-pager{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-block-start:12px}.detail-pager span{font-size:11px;color:var(--muted)}.detail-pager button{font-size:12px}
.detail-fold{margin-block-start:0;border-top:1px solid var(--line);font-size:12px}.detail-fold>summary{display:flex;align-items:center;gap:12px;padding-block:14px;min-height:48px;color:var(--ink);cursor:pointer;list-style:none}.detail-fold>summary::-webkit-details-marker{display:none}.detail-fold>summary::after{content:"›";font:18px/1 system-ui;color:var(--muted);margin-inline-start:auto}.detail-fold[open]>summary::after{transform:rotate(90deg)}.detail-count{color:var(--muted);font-variant-numeric:tabular-nums;margin-inline-start:auto}.detail-count+*{margin-inline-start:0}.detail-fold>summary:has(.detail-count)::after{margin-inline-start:0}.detail-body>.detail-fold:first-of-type{margin-block-start:23px}.secondary-details>summary{color:var(--muted)}.detail-fold p{margin:3px 0 12px}.source-links{display:grid}.source-links a{min-height:44px;padding-block:10px}
.detail-description{font-size:13px}.detail-description summary{cursor:pointer;line-height:1.6}.detail-description p{white-space:pre-line;overflow-wrap:anywhere}
.detail-timeline{list-style:none;padding:0;margin:0}.detail-timeline li{padding:0 0 16px 13px;border-inline-start:1px solid var(--line);display:grid;gap:3px}.detail-timeline time{font-size:10px;color:var(--muted)}.detail-timeline a{min-height:30px;padding-block:5px}
.detail-source{font-size:10px;line-height:1.6;color:var(--muted)}.detail-source[data-retained="true"]{color:var(--accent)}
.detail-footer{position:sticky;inset-block-end:0;background:var(--panel);display:flex;gap:8px;padding:12px 22px 18px;border-top:1px solid var(--line)}.detail-footer button{flex:1;font-size:12px}
.detail-search{display:grid;grid-template-columns:1fr 44px;gap:8px;margin:0 0 12px}.detail-search input{min-width:0;font-size:16px;border-width:0 0 1px;border-radius:0;padding-inline:0}.detail-search select{grid-column:1/-1;min-width:0;width:100%;font-size:12px;border:0;padding-inline:0}.detail-search button{font-size:18px;border:0;padding:0}.detail-guide .detail-section:first-child{margin-block-start:0}.detail-guide .detail-section p{font-size:13px;margin:0;line-height:1.6}.detail-guide .detail-section h2{font-size:13px;color:var(--ink)}
@media(max-width:660px){
 :root{--dock-edge:max(10px,env(safe-area-inset-right));--dock-width:min(374px,calc(100vw - 20px))}
 .detail-header{position:relative;flex:none;z-index:1;padding-block:18px 14px;background:var(--panel)}
 .detail-body{padding-inline:20px}.detail-footer{padding-block-end:12px}.world-detail h1{font-size:26px}
 .world-detail input,.world-detail select{font-size:16px}

}
@media(prefers-reduced-motion:reduce){.world-detail{animation:none}}

.detail-fold select{width:100%;min-height:44px;border:1px solid var(--line);border-radius:3px;background:var(--panel);color:var(--ink);padding:8px 10px;font:12px Claus,system-ui;margin-block-end:7px}
.detail-warning{font-size:11px;color:var(--accent);margin-block-end:0}
.detail-history{margin-block:16px}.detail-history>summary{min-height:44px;cursor:pointer;padding-block:10px}
.site-header{position:fixed;z-index:6;inset:0 0 auto;display:grid;grid-template-columns:minmax(88px,1fr) auto minmax(88px,1fr);align-items:center;gap:12px;min-height:64px;padding:calc(10px + env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) 10px max(24px,env(safe-area-inset-left));background:#080808;color:#eee9df;font:14px/1.2 Claus,system-ui,sans-serif}
.site-header a{color:inherit;text-decoration:none;white-space:nowrap;min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center;transition:color 140ms ease-out}
.site-header a:hover{color:#f46d3e}.site-header a:focus-visible{outline:2px solid #f4b179;outline-offset:2px;border-radius:3px}
.site-brand{justify-self:start;width:44px;height:44px}.site-brand svg{display:block;width:40px;height:40px}
.site-navigation{display:flex;align-items:center;justify-content:center;gap:clamp(8px,1.4vw,24px);min-width:0}.site-navigation a{padding-inline:8px}
.site-links{display:flex;align-items:center;justify-content:flex-end;gap:2px;justify-self:end}.site-links svg{fill:currentColor;display:block}
@media(max-width:660px){
 :root{--topbar-height:96px}
 .site-header{grid-template-columns:1fr 1fr;gap:0;min-height:96px;padding:calc(4px + env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) 4px max(12px,env(safe-area-inset-left))}
 .site-navigation{grid-column:1/-1;grid-row:2;gap:clamp(2px,2vw,10px);width:100%;font-size:13px}.site-navigation a{padding-inline:7px}
 .site-links{grid-column:2;grid-row:1}.site-brand{grid-column:1;grid-row:1}
}
@media(prefers-reduced-motion:reduce){.world-detail,.world-detail.is-leaving{animation:none}.site-header a{transition:none}}
