/* Shared identity for isolated documents; media preview contents stay unchanged. */
@font-face { font-family:PlatformPunk; src:url('/fonts/PunkTerminalStencil-Regular.ttf') format('truetype'); font-weight:400; font-display:swap; }
@font-face { font-family:PlatformPunk; src:url('/fonts/PunkTerminalStencil-Bold.ttf') format('truetype'); font-weight:700; font-display:swap; }
:root { --black:#101110; --surface:#191c1e; --surface2:#24282b; --surface-2:#24282b; --border:#41484d; --edge:#41484d; --bright:#eef0f1; --silver:#cbd0d3; --dim:#aeb6bb; --pink:#ff4f94; --cyan:#cbd0d3; --deep:#151718; }
body { background:#101110; color:#cbd0d3; }
body::before { display:none; }
button,input,select,textarea { border-radius:0; }
button:focus-visible,a:focus-visible,input:focus-visible { outline:2px solid #ff4f94; outline-offset:3px; }
.name,.hw-t,.hw-th,.hero h1,.mod>h2,.stage h3,.platform-standalone h1 { font-family:PlatformPunk,monospace; font-weight:700; letter-spacing:0; }
.name { font-size:23px; line-height:1.3; }
.meta { padding:20px; gap:12px; }
.desc { font-family:system-ui,sans-serif; font-size:15px; line-height:1.65; min-height:98px; }
.card:hover { box-shadow:none; border-color:#aeb6bb; }
.card:hover .desc { -webkit-line-clamp:4; }
.card .ft,.pn .ft { display:none; }
.chip,.howto-btn { min-height:44px; padding:10px 14px; letter-spacing:.03em; font-size:12px; }
.chip.on,.chip.own.on { background:#cbd0d3; color:#101110; border-color:#cbd0d3; box-shadow:none; }
.chip.on .n,.chip.own.on .n { color:#343b40; }
.search { min-height:46px; font-size:16px; letter-spacing:0; background:#151718; }
.search::placeholder { color:#aeb6bb; letter-spacing:0; text-transform:none; }
.sub { font-size:12px; letter-spacing:.04em; }
.grid { gap:20px; }
.slug,.foot { font-size:11px; letter-spacing:.04em; }
.tog button { min-height:36px; font-size:11px; letter-spacing:0; }
.pn { border-top:2px solid #aeb6bb; background:#191c1e; }
.pn .x,.howto-x { min-width:44px; min-height:44px; }
.pn .side { background:#191c1e; font-size:14px; }
.pn .side button { min-height:40px; }
.howto:not([hidden]) { border:1px solid #697780; box-shadow:0 0 0 100vmax #000c; padding:28px; }
.hw-lead,.hw-d { font:400 15px/1.75 system-ui,sans-serif; }
.hw-grid { grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr)); }
.hero { border:1px solid #41484d; padding:28px; }
.hero::before { background:linear-gradient(90deg,#697780,#d1d7da,#697780); height:3px; }
.hero h1 { font-size:clamp(30px,4vw,48px); line-height:1.2; }
.lede,.stage .goal,.steps,.sub,.mod p { font-family:system-ui,sans-serif; line-height:1.8; }
.mod,.stage { background:#191c1e; padding:26px; }
.stage h3 { font-size:27px; }
.const { background:#24282b; }
.const .v { color:#eef0f1; }
.wrap pre { max-width:100%; overflow:auto; }
.platform-standalone { background:#101110; }
.platform-standalone h1 { font-size:34px; line-height:1.2; }
.platform-standalone .btn { border-color:#59656d; background:#191c1e; border-radius:0; box-shadow:none; }
.platform-standalone .btn b { font:700 24px/1.3 PlatformPunk,monospace; }
.platform-standalone .btn .n { color:#cbd0d3; }
.platform-standalone .btn:hover { transform:none; border-color:#cbd0d3; }
.platform-map #mm-ctl,.platform-map #mm-win-nav { background:#191c1e; border-color:#697780; box-shadow:none; }
.platform-map .mm-nav-a,.platform-map .ob-title { font-family:PlatformPunk,monospace; }
.platform-map .ob-title { font-size:24px; }
.platform-map .ob-btn { min-height:44px; border-radius:0; }
@media(max-width:620px) {
 .search { min-width:0; flex-basis:100%; }
 .bar { gap:8px; }
 .grid { grid-template-columns:minmax(0,1fr); }
 .meta { padding:16px; }
 .ov { padding:8px; }
 .pn { grid-template-columns:minmax(0,1fr); }
 .pn .stage { min-height:40vh; }
 .pn .side { max-height:40vh; }
 .wrap { padding-left:14px; padding-right:14px; }
 .hero,.mod,.stage { padding:18px; }
 .stage { grid-template-columns:minmax(0,1fr); gap:12px; }
 .consts { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .howto:not([hidden]) { padding:18px; }
 .platform-standalone h1 { font-size:29px; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }

.mod .sub { font:400 15px/1.8 system-ui,sans-serif; }

/* Embedded DaVinci document installs its original stylesheet after load. */
html:root { --line:#41484d; --deep:#151718; --surface:#191c1e; --black:#101110; --bright:#eef0f1; --dim:#aeb6bb; --dark:#929da4; }
html body:has(.consts) .hero { background:#191c1e; padding:28px; }
html body:has(.consts) .hero::before { background:linear-gradient(90deg,#697780,#d1d7da,#697780); height:3px; }
html body:has(.consts) .hero h1,html body:has(.consts) .mod>h2,html body:has(.consts) .stage h3 { font-family:PlatformPunk,monospace; font-weight:700; letter-spacing:0; line-height:1.2; }
html body:has(.consts) .hero h1 { font-size:clamp(30px,4vw,48px); }
html body:has(.consts) .mod,html body:has(.consts) .stage { background:#191c1e; min-width:0; }
html body:has(.consts) .stage { grid-template-columns:74px minmax(0,1fr); }
html body:has(.consts) .stage>div { min-width:0; overflow-wrap:anywhere; }
html body:has(.consts) .wrap { padding-top:22px; }
html body:has(.consts) .tablewrap { max-width:100%; }
@media(max-width:620px) {
 html body:has(.consts) .wrap { padding-left:14px; padding-right:14px; }
 html body:has(.consts) .hero,html body:has(.consts) .mod,html body:has(.consts) .stage { padding:18px; }
 html body:has(.consts) .stage { grid-template-columns:minmax(0,1fr); }
 html body:has(.consts) .consts { grid-template-columns:minmax(0,1fr); }
 html body:has(.consts) .const { min-width:0; }
}

html body:has(.consts) .trap { grid-template-columns:minmax(0,1fr); overflow-wrap:anywhere; }
html body:has(.consts) .trap>div { min-width:0; }
