/* Hallmark · macrostructure: Map / Diagram · theme: custom industrial blueprint
 * axes: dark / display-condensed / warm · nav: N7 bottom tool dock · footer: Ft2 */
:root{--ground:#1d1b19;--cream:#ede6d6;--logo-cream:#f1ebd6;--cover-ground:#1e1d1b;--cover-dark:#1e1c1a;--orange:#ef742b;--steel:#77756d;--panel:#292724;--rule:#555149;--muted:#bab4a6;--space-xs:8px;--space-sm:12px;--space-md:16px;--space-lg:24px;--space-xl:40px;--ease-out:cubic-bezier(.16,1,.3,1);--ease-in:cubic-bezier(.7,0,.84,0);--ease-in-out:cubic-bezier(.65,0,.35,1);font-family:'IBM Plex Sans',sans-serif;color:var(--cream);background:var(--ground);font-synthesis:none;color-scheme:dark}
*{box-sizing:border-box}html,body{margin:0;overflow-x:clip}body{min-width:320px;font-size:14px;line-height:1.5}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer;color:inherit}button:disabled{cursor:not-allowed;opacity:.42}button:active:not(:disabled),.button:active{transform:translateY(1px)}:focus-visible{outline:2px solid var(--orange);outline-offset:4px}svg{width:24px;height:24px;flex-shrink:0}h1,h2,h3,p{margin:0}h1,h2,h3,.brand,.button,.tool{font-family:Oswald,'Arial Narrow',sans-serif}h1{font-size:clamp(36px,4.8vw,70px);font-weight:700;line-height:1.05;letter-spacing:-.035em;overflow-wrap:anywhere}h2{text-transform:uppercase;font-size:23px;line-height:1.2;letter-spacing:.035em;font-weight:600}h3{font-size:22px}p{color:var(--muted)}small,.fine{font-size:12px;color:var(--muted)}code,time,dd,.ca,.gauge strong,.world-caption{font-family:'IBM Plex Mono',monospace;font-variant-numeric:tabular-nums}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip{position:fixed;top:-100px;left:16px;z-index:10;background:var(--orange);color:var(--ground);padding:16px}.skip:focus{top:12px}.plate{position:relative;border:1px solid var(--rule);border-radius:2px;box-shadow:inset 0 0 0 3px #24221f, inset 0 0 0 4px #4b4840;background:var(--panel)}.plate:before,.plate:after{content:'';position:absolute;width:6px;height:6px;top:9px;border-radius:50%;background:#49463f;border:1px solid #151412;box-shadow:inset 0 1px #a8a294;pointer-events:none;z-index:2}.plate:before{left:9px}.plate:after{right:9px}.mast{min-height:70px;margin:4px 4px 0;padding:8px 30px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:20px;font-size:31px;font-weight:600;letter-spacing:.18em;white-space:nowrap}.brand img{width:51px;height:51px;object-fit:contain}.brand span{padding-left:20px;border-left:1px solid var(--rule)}.mast-end{display:flex;gap:12px;align-items:center}.ca{padding:9px 14px;border:1px solid var(--rule);font-size:12px;white-space:nowrap}.social{display:flex;align-items:center;justify-content:center;min-width:44px;height:44px}.social svg{width:25px;height:25px}.pump{gap:8px}.pump img{width:25px;height:25px;filter:grayscale(1) sepia(.2)}.button{min-height:46px;padding:10px 22px;border:1px solid var(--cream);background:transparent;border-radius:3px;color:var(--cream);display:inline-flex;align-items:center;justify-content:center;gap:12px;font-size:18px;font-weight:500;white-space:nowrap;transition:transform 120ms var(--ease-out)}.primary{background:var(--orange);border-color:var(--orange);color:var(--ground)}.primary:hover:not(:disabled){background:#fa853b}.button:hover:not(.primary){background:#35312b}.block{width:100%}main{padding:0 26px;max-width:1800px;margin:auto}.intro{display:flex;align-items:center;gap:26px;padding:26px 4px 24px}.intro h1{white-space:nowrap;font-size:clamp(40px,4.7vw,72px)}.intro h1 span{color:var(--orange)}.intro p{color:var(--cream);font-size:clamp(14px,1.3vw,20px);line-height:1.5;flex:1}.intro-actions{display:flex;gap:12px}.intro-actions .button{min-height:59px;font-size:22px;padding:12px 24px}.intro-actions svg{width:29px;height:29px}.factory-console{display:grid;grid-template-columns:minmax(0,1fr) 342px;border:1px solid var(--rule);padding:5px;background:#24221f;gap:5px}.viewport{position:relative;min-width:0;height:476px;overflow:hidden;border:1px solid var(--rule)}.world-stage{width:100%;height:100%;position:relative;background:var(--ground);touch-action:none}.world-stage canvas{display:block;width:100%;height:100%;outline-offset:-4px}.world-heading{position:absolute;top:18px;left:23px;pointer-events:none}.world-heading h2{font-size:25px;text-shadow:0 1px var(--ground)}.badge{display:inline-flex;align-items:center;gap:8px;margin-top:7px;padding:6px 10px;background:var(--panel);border:1px solid var(--rule);font-family:'IBM Plex Mono',monospace;font-size:10px;font-weight:500;letter-spacing:.04em}.badge.demo{background:var(--orange);border-color:var(--orange);color:var(--ground);font-family:Oswald,sans-serif;font-size:17px;font-weight:600;padding:4px 14px}.map-controls{position:absolute;right:12px;top:14px;display:flex;gap:4px}.map-controls button{background:var(--panel);border:1px solid var(--rule);width:36px;height:36px;font-size:20px}.world-caption{position:absolute;bottom:12px;left:16px;right:16px;display:flex;gap:12px;justify-content:space-between;pointer-events:none;font-size:9px;color:var(--muted);padding:4px;background:#1d1b19c9}.telemetry{display:flex;flex-direction:column;gap:5px;min-width:0}.output{padding:18px 15px 12px;background:#77756d;color:var(--ground);box-shadow:inset 0 0 0 3px #4d4b45,inset 0 0 0 4px #a29d91}.output h2{text-align:center;font-size:21px;letter-spacing:.04em;padding-bottom:10px;border-bottom:1px solid #45423a}.gauges{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;padding-top:4px}.gauge{text-align:center}.gauge svg{width:100%;height:auto;display:block}.gauge>span{font:500 10px Oswald,sans-serif;display:block;white-space:nowrap}.gauge strong{display:block;background:#25231f;color:var(--orange);font-size:18px;line-height:1.4;padding:3px;margin-top:5px;border:1px solid #999283;border-radius:2px}.gauge strong small{font-size:10px;color:var(--orange)}.simulation-note{color:#211f1b;font-size:11px;text-align:center;margin-top:9px;padding-top:9px;border-top:1px solid #45423a}.inspector{flex:1;padding:17px 18px 14px;display:flex;flex-direction:column;gap:8px;background:#33302b}.inspector h2{font-size:20px;padding-bottom:8px;border-bottom:1px solid var(--rule)}dl{margin:0}dl>div{display:flex;align-items:baseline;justify-content:space-between;gap:12px;border-bottom:1px solid #4b473e;padding:7px 0}dt{color:var(--muted);font-size:12px}dd{margin:0;font-size:10px;max-width:65%;text-align:right;color:var(--cream)}.inspector p{font-size:11px;line-height:1.5;margin-top:9px}.inspector .button{font-size:15px;min-height:39px;padding:8px}.build-status{font-size:12px;line-height:1.5;min-height:16px;color:var(--cream)}.build-status.error{color:#ffad75}.inspector .build-status{margin-top:auto}.build-dock{grid-column:1/-1;display:flex;align-items:stretch;min-width:0;gap:8px;min-height:65px;padding:5px}.hazard{display:block;width:70px;flex-shrink:0;background:repeating-linear-gradient(130deg,var(--orange) 0 12px,var(--orange) 12px,#25231f 12px,#25231f 25px);border:1px solid #4b473e}.tools{display:flex;flex:1;min-width:0;overflow:auto}.tool{flex:1;min-width:85px;border:0;border-left:1px solid #625d51;background:transparent;display:flex;align-items:center;justify-content:center;gap:9px;padding:9px 7px;font-size:14px;position:relative;min-height:51px;white-space:nowrap}.tool:first-child{border-left:0}.tool svg{color:var(--orange);width:25px;height:25px}.tool.active{background:#40382e;box-shadow:inset 0 -2px var(--orange)}.tool small{font:8px 'IBM Plex Mono',monospace;position:absolute;right:4px;top:2px}.registry{padding:22px 4px}.registry-head{display:flex;align-items:center;gap:20px;margin-bottom:14px}.registry-head h2{font-size:30px;white-space:nowrap}.search{flex:1;min-width:0}input,textarea{background:#24221f;border:1px solid var(--rule);border-radius:2px;color:var(--cream);padding:12px;min-height:44px;min-width:0;width:100%;font-family:'IBM Plex Sans',sans-serif;font-size:14px}input::placeholder,textarea::placeholder{color:#a7a091}.search input{height:44px}.sorts{display:flex;border:1px solid var(--rule);border-radius:3px}.sorts button{min-height:44px;min-width:105px;border:0;background:transparent;color:var(--muted)}.sorts button.active{outline:1px solid var(--orange);outline-offset:-1px;color:var(--orange);background:#29251f}.world-list{border:1px dashed #666052;min-height:100px}.empty{display:flex;align-items:center;justify-content:center;gap:18px;padding:22px;font-size:13px;min-height:100px}.empty svg{width:32px;height:32px;color:var(--muted)}.empty a,.text-button{color:var(--orange);text-decoration:underline;text-underline-offset:3px}.text-button{border:0;background:none;padding:0;font-size:inherit;min-height:30px}.empty.error{color:var(--muted)}.world-rows{margin:0;padding:0;list-style:none}.world-rows li+li{border-top:1px solid var(--rule)}.world-rows a{display:grid;grid-template-columns:38px minmax(0,1fr) 130px 70px 110px;align-items:center;gap:16px;padding:18px 20px;font-family:'IBM Plex Mono',monospace;font-size:11px}.world-rows a:hover{background:#302c26}.coin-name{font:500 17px 'IBM Plex Sans',sans-serif}.coin-name small{padding-left:8px}.rank{color:var(--orange)}.open{color:var(--orange);text-align:right}.footer{display:flex;gap:24px;align-items:center;padding:5px;margin:0 4px 4px;min-height:43px;font-size:11px}.footer .hazard{align-self:stretch;width:100px}.footer small{margin-left:auto;font-size:10px}.footer>a{color:var(--muted)}.footer>a:hover{color:var(--orange)}.page-heading{padding:28px 4px 24px}.page-heading>a:first-child{display:inline-block;margin-bottom:14px;color:var(--muted);font-size:12px}.page-heading h1{font-size:46px}.page-heading p{margin-top:12px;font-size:15px}.page-heading .button{margin:16px 16px 0 0}.world-detail{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:40px;padding:28px 4px 36px}.world-detail h2{margin-bottom:14px}.world-detail p{font-size:13px}.world-detail dl{display:flex;gap:28px;margin:18px 0}.world-detail dl>div{display:block;flex:1;padding:12px 0}.world-detail dd{text-align:left;max-width:100%;font-size:18px;margin-top:5px}.activity ol{padding:0;margin:0;list-style:none}.activity li{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--rule);font-size:12px}.activity time{font-size:10px;color:var(--muted);white-space:nowrap}details{margin-top:18px}summary{cursor:pointer;color:var(--orange);min-height:40px;padding:6px 0}table{width:100%;border-collapse:collapse;font:10px 'IBM Plex Mono',monospace}td,th{text-align:left;padding:10px 4px;border-bottom:1px solid var(--rule);font-weight:400}.toasts{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:30;display:grid;gap:8px;max-width:90vw}.toast{background:var(--panel);border:1px solid var(--orange);padding:14px 20px;font-size:13px;box-shadow:0 6px 30px #15141270}.toast.out{opacity:0}.fallback{overflow:auto;padding:60px 20px 32px;touch-action:auto}.fallback-label{font-size:12px;margin-bottom:12px}.fallback-grid{display:grid;grid-template-columns:repeat(var(--cols),minmax(48px,1fr));gap:3px;min-width:max-content}.tile{border:1px solid var(--rule);background:#292724;min-width:48px;min-height:48px;font-size:9px;padding:3px}.tile.filled{color:var(--orange);background:#40372b}.tile:focus{outline:2px solid var(--orange);outline-offset:-2px}.launch-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:48px;align-items:start}.launch-page{max-width:1250px;margin:auto;padding-bottom:40px}.launch-form{padding:28px;display:grid;gap:30px}.launch-form section{display:grid;gap:16px}.launch-form label{display:grid;gap:7px;font-size:13px}.launch-form label small{display:inline}.launch-form h2{font-size:25px}.launch-form p{font-size:13px}.pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}.upload{border:1px dashed var(--rule);min-height:110px;display:flex!important;align-items:center;justify-content:center;padding:16px;cursor:pointer;gap:18px!important}.upload img{width:84px;height:84px;object-fit:cover}.upload span{font-size:17px}.upload small{display:block!important;font-size:11px;margin-top:4px}.launch-explainer{padding:16px 0}.launch-mark{width:100px;height:100px;margin-bottom:22px}.launch-explainer h2{font-size:44px;line-height:1.15;letter-spacing:0}.launch-explainer dl{margin:24px 0}.launch-explainer dl>div{display:block;padding:16px 0}.launch-explainer dt{font:500 20px Oswald,sans-serif;color:var(--orange);margin-bottom:8px}.launch-explainer dd{font:13px/1.6 'IBM Plex Sans',sans-serif;text-align:left;max-width:100%;color:var(--muted)}.pending{padding:22px;margin-top:24px}.pending p{margin:12px 0}.doc{padding:40px 0;min-height:65vh}.doc h1{font-size:44px}.doc .lede{margin:16px 0 24px}.doc .field{display:grid;gap:8px}.doc .btn,.doc .key{min-height:44px;background:var(--orange);border:0;padding:10px 20px;color:var(--ground)}.hide,[hidden]{display:none!important}
@media(min-width:1600px){.viewport{height:570px}.intro{padding:32px 4px}.factory-console{grid-template-columns:minmax(0,1fr) 365px}.output{padding:22px}}
@media(max-width:1200px){main{padding:0 16px}.intro{flex-wrap:wrap;gap:12px 24px}.intro h1{font-size:56px}.intro p{font-size:15px}.intro-actions{margin-left:auto}.intro-actions .button{min-height:44px;font-size:18px}.factory-console{grid-template-columns:minmax(0,1fr) 300px}.viewport{height:470px}.build-dock .hazard{width:35px}.tool{min-width:78px;gap:5px;font-size:12px}.tool svg{width:22px}.mast{padding:8px 24px}.brand{font-size:26px;gap:12px}.brand span{padding-left:12px}.mast-end{gap:6px}.pump span{display:none}.world-caption span{display:none}}
@media(max-width:800px){.mast{gap:8px;padding:8px 18px;min-height:62px}.brand{font-size:22px;letter-spacing:.1em}.brand img{width:40px;height:40px}.brand span{padding-left:8px}.ca{display:none}.mast-end .button{min-height:40px;font-size:14px;padding:8px 12px}.social{min-width:32px}.social svg,.pump img{width:20px}.intro{padding:20px 0;gap:12px}.intro h1{font-size:48px}.intro p{font-size:14px;flex-basis:100%}.intro-actions{margin-left:0}.intro-actions .button{font-size:17px;padding:10px 18px;min-height:46px}.factory-console{grid-template-columns:minmax(0,1fr)}.viewport{height:420px}.telemetry{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.output{padding:18px 10px 12px}.output h2{font-size:19px}.inspector{padding:17px 12px 12px}.inspector h2{font-size:17px}.inspector dl>div{padding:4px 0}.inspector p{font-size:10px}.gauges{gap:2px}.gauge strong{font-size:15px}.simulation-note{font-size:10px}.tool{min-width:90px;font-size:14px}.registry-head{flex-wrap:wrap;gap:12px}.registry-head h2{font-size:26px}.registry-head .search{flex-basis:50%}.sorts{margin-left:auto}.footer{gap:12px;flex-wrap:wrap;padding:8px 16px}.footer .hazard{width:35px;min-height:24px}.footer .hazard:last-child,.footer small{display:none}.footer span{flex:1}.world-detail{grid-template-columns:minmax(0,1fr);gap:28px}.world-rows a{grid-template-columns:24px minmax(0,1fr) 75px;gap:10px;padding:14px 12px}.world-rows .open{display:none}.world-rows a>span:nth-child(4){display:none}.coin-name{font-size:14px}.coin-name small{display:block;padding:0}.world-rows a>span:nth-child(3){font-size:10px}.launch-grid{grid-template-columns:minmax(0,1fr);gap:24px}.launch-explainer{display:none}.page-heading h1{font-size:38px}.build-dock .hazard{width:25px}.registry{padding-bottom:22px}.fallback{padding-top:80px}}
@media(max-width:480px){main{padding:0 10px}.mast{padding:8px 12px}.mast:before,.mast:after{display:none}.brand{font-size:19px;gap:5px;letter-spacing:.07em}.brand img{width:33px;height:33px}.brand span{padding-left:6px}.mast-end{gap:2px}.mast-end .button{font-size:12px;padding:7px 9px}.social{min-width:27px}.social svg,.pump img{width:17px}.intro h1{font-size:49px}.intro p{font-size:14px}.intro-actions{width:100%}.intro-actions .button{flex:1;font-size:16px;padding:10px 12px}.intro-actions svg{width:23px}.viewport{height:355px}.world-heading{top:14px;left:13px}.world-heading h2{font-size:21px}.badge.demo{font-size:14px}.map-controls{top:auto;bottom:37px;right:10px;flex-direction:column}.map-controls button{width:34px;height:34px}.telemetry{grid-template-columns:minmax(0,1fr)}.output{padding:17px 22px 12px}.gauges{max-width:300px;margin:auto;gap:9px}.gauge svg{max-height:95px}.gauge strong{font-size:20px}.gauge>span{font-size:11px}.simulation-note{font-size:11px}.inspector p{font-size:12px}.inspector{padding:16px 18px}.inspector h2{font-size:20px}.inspector dd{font-size:11px}.inspector .build-status:empty{display:none}.registry-head h2{width:100%;font-size:27px}.registry-head .search{flex-basis:100%}.sorts{width:100%;margin:0}.sorts button{flex:1}.empty{padding:20px 14px;gap:12px;font-size:12px}.world-caption{font-size:8px}.footer{font-size:10px;gap:10px;padding:6px 10px}.footer .hazard{width:26px}.footer>a{display:none}.launch-form{padding:24px 16px}.pair{grid-template-columns:minmax(0,1fr)}.page-heading{padding-top:22px}.page-heading h1{font-size:34px}.world-detail dl{gap:12px}.world-detail dd{font-size:16px}.doc .card{padding:18px!important}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Keep both control panels aligned to the machine viewport. */
@media(min-width:801px){.factory-console{grid-template-rows:476px auto}.viewport{height:100%;min-height:0}.telemetry{height:100%;min-height:0}.output{flex:0 0 auto;padding:16px 15px 10px}.gauges{padding-top:0}.gauge svg{max-height:91px}.inspector{min-height:0;overflow:auto;gap:5px;padding:14px 16px 12px}.inspector h2{font-size:18px;padding-bottom:6px}.inspector dl>div{padding:4px 0}.inspector p{margin-top:6px;font-size:11px;line-height:1.4}.inspector .build-status:empty{display:none}.inspector .button{min-height:34px;padding:6px;font-size:14px}}
@media(min-width:1600px){.factory-console{grid-template-rows:570px auto}}

/* A coin's factory occupies the screen; market details follow below the HUD. */
@media(min-width:801px){.world-page .page-heading{padding:14px 4px}.world-page .page-heading>a:first-child{margin-bottom:6px}.world-page .page-heading h1{font-size:30px}.world-page .page-heading p{margin-top:4px;font-size:12px}.world-page .factory-console{grid-template-rows:minmax(420px,calc(100dvh - 302px)) auto}}
