/* Shared, scoped Umbras menu language. No world, input or recorder behavior. */
@font-face{font-family:'Umbras DIN';src:url('/fonts/urw-din-regular.otf') format('opentype');font-display:swap;font-weight:400}
.umbras-ui{--ui-paper:#f5f4ef;--ui-ink:#090909;--ui-muted:#464642;--ui-rule:#09090955;--ui-fast:180ms;--ui-ease:cubic-bezier(.16,1,.3,1);font-family:'Umbras DIN','Segoe UI',Arial,sans-serif;font-synthesis:none;color:var(--ui-ink)}
.umbras-ui[data-theme=dark],.umbras-ui[data-phase=dark],.umbras-ui [data-phase=dark]{--ui-paper:#090909;--ui-ink:#f5f4ef;--ui-muted:#c6c5be;--ui-rule:#f5f4ef68}
.umbras-ui .umbra-control{--control-face:var(--ui-paper);--control-label:var(--ui-ink);--control-border:var(--ui-ink);position:relative;isolation:isolate;display:block;box-sizing:border-box;width:100%;height:var(--control-height,80px);min-height:48px;border:0;padding:0;border-radius:0;background:none;color:var(--control-label);font:inherit;font-size:var(--control-type,34px);line-height:1;text-decoration:none;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:transform var(--ui-fast) var(--ui-ease)}
.umbras-ui .umbra-control.primary{--control-face:var(--ui-ink);--control-label:var(--ui-paper);--control-border:var(--ui-paper)}
.umbras-ui .control-face,.umbras-ui .control-cast,.umbras-ui .control-contact{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.umbras-ui .control-face .face-surface{fill:var(--control-face);stroke:var(--control-border);stroke-width:1;transition:fill var(--ui-fast) ease,stroke var(--ui-fast) ease}
.umbras-ui .control-face .face-keyline{fill:none;stroke:var(--ui-ink);stroke-width:2;stroke-opacity:.8}
.umbras-ui .control-cast{z-index:-1;opacity:.65;transform:translate(2px,3px);transition:transform var(--ui-fast) var(--ui-ease),opacity var(--ui-fast) ease}
.umbras-ui .control-cast .cast-surface{fill:var(--control-face);stroke:var(--control-label);stroke-width:1;transition:fill var(--ui-fast) ease,stroke var(--ui-fast) ease}
.umbras-ui .control-cast .cast-keyline{fill:none;stroke:var(--ui-ink);stroke-width:1;stroke-opacity:.8}
.umbras-ui .control-contact{z-index:-1;fill:var(--ui-ink);opacity:.75}
.umbras-ui .control-content{position:absolute;inset:0;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 9% 0 28px;color:var(--control-label);transition:color var(--ui-fast) ease}
.umbras-ui .umbra-control:focus-visible,.umbras-ui .umbra-control.is-focus{outline:2px solid var(--ui-ink);outline-offset:7px}
.umbras-ui .umbra-control:is(:focus-visible,.is-focus,.is-hover){--control-face:var(--ui-ink);--control-label:var(--ui-paper);--control-border:var(--ui-paper)}
.umbras-ui .umbra-control.primary:is(:focus-visible,.is-focus,.is-hover){--control-face:var(--ui-paper);--control-label:var(--ui-ink);--control-border:var(--ui-ink)}
.umbras-ui .umbra-control:is(:focus-visible,.is-focus,.is-hover) .control-cast{opacity:1;transform:translate(8px,10px)}
.umbras-ui .umbra-control:is(:active,.is-pressed){transform:translate(4px,5px)}
.umbras-ui .umbra-control:is(:active,.is-pressed) .control-cast{transform:translate(2px,3px)}
.umbras-ui .eye{display:block;width:36px;height:70px;flex:none;overflow:visible}
.umbras-ui .eye-white{fill:var(--control-label);stroke:none;transition:fill var(--ui-fast) ease}
.umbras-ui .eye-pupil{fill:var(--control-face);stroke:none;transform-box:fill-box;transform-origin:center;animation:lantern-glance 13s ease-in-out 1s infinite;transition:fill var(--ui-fast) ease}
.umbras-ui .eye-open{transform-origin:21px 42px;animation:lantern-blink 7.8s ease-in-out 1.2s infinite}
.umbras-ui .eye-closed{fill:none;stroke:var(--control-label);stroke-width:2;opacity:0;animation:lantern-lid 7.8s ease-in-out 1.2s infinite}
@keyframes lantern-blink{0%,41%,46%,100%{transform:scaleX(1)}43%,44%{transform:scaleX(.035)}}
@keyframes lantern-lid{0%,41%,46%,100%{opacity:0}43%,44%{opacity:1}}
@keyframes lantern-glance{0%,20%,38%,62%,80%,100%{transform:translate(0,0)}25%,32%{transform:translate(-3px,2px)}67%,74%{transform:translate(3px,-2px)}}
@media(hover:hover) and (pointer:fine){
 .umbras-ui .umbra-control:hover{--control-face:var(--ui-ink);--control-label:var(--ui-paper);--control-border:var(--ui-paper)}
 .umbras-ui .umbra-control.primary:hover{--control-face:var(--ui-paper);--control-label:var(--ui-ink);--control-border:var(--ui-ink)}
 .umbras-ui .umbra-control:hover .control-cast{opacity:1;transform:translate(8px,10px)}
 .umbras-ui .umbra-control:active .control-cast{transform:translate(2px,3px)}
}
.umbras-ui .umbra-control:disabled{cursor:default;opacity:.45}
/* Canonical flat variant, shared by home and runtime. Layout may set size only. */
.umbras-ui .umbra-control.flat-control .control-cast,.umbras-ui .umbra-control.flat-control .control-contact{display:none}
.umbras-ui .umbra-control.flat-control:is(:active,.is-pressed){transform:translateY(2px)}
/* Umbras game-UI foundation. Heph-derived roles, authored DIN/phase adaptation. */
.umbras-ui{--ui-font-body:'Umbras DIN','Segoe UI',Arial,sans-serif;--ui-font-data:ui-monospace,'Cascadia Code',monospace;--ui-type-caption:14px;--ui-type-body:18px;--ui-type-section:20px;--ui-type-control:34px;--ui-type-action:40px;--ui-type-title:clamp(38px,4.5vw,62px);--ui-leading-body:1.5;--ui-leading-title:1.04;--ui-space-1:2px;--ui-space-2:4px;--ui-space-3:6px;--ui-space-4:8px;--ui-space-5:10px;--ui-space-6:12px;--ui-space-7:14px;--ui-space-8:16px;--ui-space-9:18px;--ui-space-10:20px;--ui-space-11:22px;--ui-space-12:24px;--ui-space-13:26px;--ui-space-14:28px;--ui-space-15:30px;--ui-space-16:32px;--ui-space-17:34px;--ui-space-18:36px;--ui-space-19:38px;--ui-space-20:40px;--ui-space-21:42px;--ui-space-22:44px;--ui-space-24:48px;--ui-gap-tight:var(--ui-space-4);--ui-gap:var(--ui-space-8);--ui-gap-section:var(--ui-space-12);--ui-inset-panel:var(--ui-space-20);--ui-key-size:32px;--ui-key-size-small:26px;--ui-key-type:16px;--ui-key-radius:2px;--ui-scrim:color-mix(in srgb,var(--ui-paper) 25%,transparent);--ui-shadow-control:none;--ui-shadow-panel:none;--ui-ease-enter:cubic-bezier(.23,1,.32,1);--ui-ease-settle:cubic-bezier(.16,1,.3,1);--ui-ease-exit:cubic-bezier(.4,0,1,1);--ui-duration-state:180ms;--ui-duration-enter:210ms;--ui-duration-exit:150ms;--ui-focus-width:2px;--ui-focus-offset:7px;--ui-fast:var(--ui-duration-state);--ui-ease:var(--ui-ease-settle);font-family:var(--ui-font-body)}
.umbras-ui .ui-title{margin:0;font-size:var(--ui-type-title);font-weight:400;line-height:var(--ui-leading-title);letter-spacing:-.025em}
.umbras-ui .ui-body{font-size:var(--ui-type-body);line-height:var(--ui-leading-body)}
.umbras-ui .ui-caption{font-size:var(--ui-type-caption);line-height:var(--ui-leading-body);color:var(--ui-muted)}
.umbras-ui .ui-surface{position:relative;isolation:isolate;color:var(--ui-ink);box-shadow:var(--ui-shadow-panel)}
.umbras-ui .ui-surface-face{position:absolute;inset:0;width:100%;height:100%;z-index:-1;fill:var(--ui-paper);stroke:var(--ui-ink);stroke-width:1;pointer-events:none}
.umbras-ui .ui-key{display:inline-flex;align-items:center;justify-content:center;min-width:29px;height:31px;padding:0 var(--ui-space-3);border:1px solid var(--ui-ink);border-radius:var(--ui-key-radius);font:var(--ui-key-type)/1 var(--ui-font-body);white-space:nowrap;color:var(--ui-ink);background:var(--ui-paper)}
.umbras-ui .ui-key-pad{display:grid;grid-template-columns:repeat(3,var(--ui-key-size));grid-template-rows:repeat(2,var(--ui-key-size));gap:var(--ui-space-2)}
.umbras-ui .ui-key-pad .ui-key{width:100%;height:100%;min-width:0;padding:0}
.umbras-ui .ui-key-pad .ui-key:first-child{grid-column:2;grid-row:1}.umbras-ui .ui-key-pad .ui-key:nth-child(2){grid-column:1;grid-row:2}.umbras-ui .ui-key-pad .ui-key:nth-child(3){grid-column:2;grid-row:2}.umbras-ui .ui-key-pad .ui-key:nth-child(4){grid-column:3;grid-row:2}
.umbras-ui .ui-key-pair{display:flex;align-items:center;gap:var(--ui-gap)}
.umbras-ui .ui-mouse-icon{display:block;width:25px;height:35px;flex:none;fill:none;stroke:var(--ui-ink);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.umbras-ui .ui-input-help{display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:center;gap:var(--ui-gap) var(--ui-gap-section);margin:0;font-size:var(--ui-type-body);line-height:1.4}
.umbras-ui .ui-input-help dt,.umbras-ui .ui-input-help dd{margin:0}.umbras-ui .ui-input-help dt{display:flex;align-items:center;gap:var(--ui-gap-tight)}.umbras-ui .ui-input-help dd{color:var(--ui-muted)}
.umbras-ui .ui-enter.is-entering{animation:ui-panel-enter var(--ui-duration-enter) var(--ui-ease-enter) both}
@keyframes ui-panel-enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.umbras-ui *,.umbras-ui *::before,.umbras-ui *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

@font-face{font-family:'Umbras DIN';src:url('/fonts/urw-din-bold.otf') format('opentype');font-display:swap;font-weight:700;font-style:normal}

.umbras-ui :is(.ui-title,h1,h2,h3){font-weight:700}
