*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#101918;color:#e9e6d7;font-family:'Courier New',monospace}#scene{width:100%;height:100%;display:block;image-rendering:pixelated;position:absolute}.grain{position:absolute;inset:0;pointer-events:none;opacity:.16;background:repeating-linear-gradient(0deg,#0008 0 1px,transparent 1px 3px);z-index:2}.vignette{position:absolute;inset:0;box-shadow:inset 0 0 180px 60px #020b0bb0;pointer-events:none;z-index:2}header,footer{position:absolute;left:36px;right:36px;display:flex;justify-content:space-between;z-index:3;font-size:11px;letter-spacing:2px}header{top:28px;align-items:center}.brand{font-weight:bold;font-size:13px}.brand span{display:block;font-size:8px;opacity:.55;margin-top:8px;letter-spacing:2px}#counter{border:1px solid #a4baaa44;padding:12px 16px;color:#bac6b7}#counter b{font-size:22px;color:#f1dca2;margin:0 8px}footer{bottom:24px;font-size:9px;color:#adb8a5}#crosshair{position:absolute;top:50%;left:50%;z-index:3;opacity:.5;display:none}#notice{position:absolute;bottom:90px;width:min(650px,90%);left:50%;transform:translateX(-50%);text-align:center;z-index:5;font-size:14px;background:#0b1515dd;padding:16px;border-left:2px solid #c6a561;opacity:0;transition:opacity .3s;line-height:1.6}.overlay{position:absolute;inset:0;z-index:6;background:linear-gradient(90deg,#0a1415ef 0%,#0b1515c9 36%,#0b151518 80%);display:flex;align-items:center;padding:7vw}.menu-inner{max-width:590px}.eyebrow{font-size:10px;letter-spacing:4px;color:#c7b689;margin-bottom:25px}h1{font-family:Georgia,serif;font-size:clamp(45px,6.8vw,100px);line-height:.92;font-weight:400;letter-spacing:-3px;margin:0 0 24px}h1 em{font-style:normal;color:#d6bd83}.title-dot{color:#d6bd83}.intro{font-size:13px;line-height:1.8;color:#b7c1b5}.rules{margin:24px 0;border-top:1px solid #c8c5a82e;padding-top:12px;font-size:12px}.rules span{color:#b49c6a;margin-right:14px}button{cursor:pointer;font:12px 'Courier New',monospace;letter-spacing:1px;border:1px solid #b8a16d;background:#cab47f;color:#162221;padding:17px 22px;touch-action:none}button:hover,button:focus-visible{background:#efdaa4;outline:2px solid #fff6;outline-offset:3px}#start{width:100%;display:flex;justify-content:space-between}.small{color:#8f9b90;font-size:10px;line-height:1.7;margin-top:15px}.stamp{position:absolute;right:6vw;bottom:15vh;text-align:right;font-size:9px;line-height:2;letter-spacing:2px;color:#b0baa0}.stamp strong{font-size:45px;font-weight:normal;color:#d1c8a2}.hidden{display:none!important}.panel{background:#101d1fee;padding:40px;border:1px solid #b6ac7744;max-width:520px;margin:auto}h2{font:38px Georgia,serif;color:#e5d5b3}.panel p{line-height:1.8;color:#adb9ac;font-size:13px}.panel label{display:block;margin:22px 0;font-size:13px}.panel button{width:100%;margin-top:12px}.secondary{background:transparent;color:#d5c08d}#touch{display:none;position:absolute;bottom:65px;left:20px;z-index:4;gap:7px}#touch button{background:#142321aa;color:#dacb9e;border-color:#d7cba444;font-size:22px;padding:14px}#pauseButton{position:absolute;right:24px;top:90px;z-index:4;background:#10232177;color:#d5c08d;padding:8px 12px}@media(pointer:coarse){#touch{display:flex}#help{display:none}}@media(max-width:650px){header,footer{left:20px;right:20px}.overlay{padding:24px}.stamp{display:none}.menu-inner{padding-top:35px}h1{font-size:54px}.eyebrow{margin-bottom:18px}.rules{margin:16px 0}.intro{font-size:12px}#help{display:none}.panel{padding:25px}#notice{bottom:140px;font-size:12px}}@media(max-height:650px){h1{font-size:52px}.rules{margin:12px 0}.eyebrow{margin-bottom:12px}.intro{margin:12px 0}.small{font-size:9px}.overlay{padding-top:65px;padding-bottom:30px}}
/* PS2-inspired presentation: smooth silhouettes, subdued bloom, quiet film grain. */
#scene{image-rendering:auto;outline:none}.grain{opacity:.025;background:repeating-linear-gradient(0deg,#0005 0 1px,transparent 1px 4px)}.vignette{box-shadow:inset 0 0 120px 30px #04101370}.brand{font-family:Georgia,serif;letter-spacing:1.3px;font-size:16px}.brand span{font-family:'Courier New',monospace}.overlay{background:linear-gradient(90deg,#0a1415eb 0%,#0b1515bf 36%,#0b151510 80%)}#fade{position:absolute;inset:0;background:#020807;opacity:0;pointer-events:none;z-index:4}#readBoard{position:absolute;left:50%;bottom:48px;transform:translateX(-50%);z-index:5;background:#152a29eb;color:#ede2bd;border-color:#9f956d}#planning{background:#081414a6;padding:25px;backdrop-filter:blur(4px)}.planning-sheet{margin:auto;max-width:850px;width:100%;max-height:94vh;overflow:auto;background:#eee7d0;color:#30473f;padding:35px;box-shadow:0 15px 70px #0009}.planning-sheet h2{color:#30473f;margin:12px 0}.planning-sheet .eyebrow{color:#597064;margin-bottom:12px}.planning-sheet p{font:13px/1.7 Georgia,serif}.planning-sheet table{border-collapse:collapse;width:100%;margin:24px 0;font:14px/1.5 Georgia,serif}.planning-sheet th{text-align:left;background:#304c43;color:#efe8d2;padding:12px}.planning-sheet td{padding:12px;border-bottom:1px solid #b7b9a1}.planning-sheet tbody tr:nth-child(even){background:#e0ddc6}.planning-sheet button{background:#304c43;color:#efe8d2}.planning-sheet button:focus-visible{outline-color:#536f5d}@media(max-width:650px){.brand{font-size:12px}.planning-sheet{padding:18px}.planning-sheet table{font-size:11px}.planning-sheet th,.planning-sheet td{padding:8px 4px}.planning-sheet h2{font-size:29px}#readBoard{bottom:130px;white-space:nowrap}.panel{max-height:90vh;overflow:auto}}@media(max-height:720px){.panel{padding:22px;max-height:92vh;overflow:auto}.panel h2{font-size:29px;margin:12px 0}.panel label{margin:15px 0}}
#fps{margin-left:auto;margin-right:18px;color:#a8b5a4;font:10px 'Courier New',monospace;letter-spacing:1px}@media(max-width:650px){#fps{position:absolute;right:0;top:55px;margin:0;font-size:9px}}

.share-result{border-top:1px solid #b6ac7744;margin-top:22px;padding-top:8px}.share-result p{margin:8px 0}#shareStatus:empty{display:none}#shareStatus{font-size:11px}#shareText{width:100%;min-height:125px;padding:12px;background:#0b1718;color:#e9e6d7;border:1px solid #b6ac7777;font:12px/1.6 monospace}#ending .panel{max-height:92vh;overflow:auto}

.secondary:hover,.secondary:focus-visible{color:#162221}

.recruitment{border-top:1px solid #b6ac7744;margin-top:24px;padding-top:10px}.recruitment p{color:#e5d5b3}.job-cta{display:block;text-align:center;text-decoration:none;background:#cab47f;color:#162221;border:1px solid #b8a16d;padding:16px 18px;font:12px/1.6 "Courier New",monospace;letter-spacing:1px}.job-cta:hover,.job-cta:focus-visible{background:#efdaa4;outline:2px solid #fff6;outline-offset:3px}.recruitment .small{display:block;margin-top:8px}

#ending{padding:20px}#ending .panel{max-height:calc(100dvh - 40px)}
/* Readable interface type, independent of the 3D render resolution. */
html{font-size:18px}
header{font-size:14px;letter-spacing:1px;gap:16px}.brand{font-size:20px}.brand span{font-size:13px;opacity:.85;letter-spacing:1px}#fps{font-size:13px}#counter{font-size:14px;white-space:nowrap}#counter b{font-size:28px}
footer{font-size:13px;letter-spacing:.4px;gap:24px;line-height:1.5;color:#c3cdbf}#help{text-align:right;max-width:65%}
#menu{padding:100px 6vw 75px;overflow-y:auto;align-items:flex-start}.menu-inner{width:min(720px,100%);max-width:720px;margin-block:auto;padding-top:0;flex-shrink:0}h1{font-size:clamp(54px,6.5vw,96px);line-height:1;letter-spacing:-2px}.intro{font-size:19px;line-height:1.7;color:#d2d8cc}.rules{font-size:18px;line-height:1.6;margin:22px 0}.rules p{margin:10px 0}.rules span{color:#d0b97e}
button,.job-cta{font-size:16px;line-height:1.45;letter-spacing:.5px}.small{font-size:15px;line-height:1.65;color:#b9c5b7}.eyebrow{font-size:14px;letter-spacing:2px;line-height:1.5}.stamp{font-size:13px;letter-spacing:1px}.stamp strong{font-size:52px}
.panel{width:min(640px,100%);max-width:640px;max-height:calc(100dvh - 40px);overflow:auto;padding:30px}.panel h2{font-size:40px;margin:14px 0 24px}.panel p,.panel label{font-size:18px;line-height:1.65;color:#c8d1c3}.panel label{margin:20px 0}#pause{padding:20px}.panel input[type=range]{max-width:100%}
#notice{font-size:18px;width:min(760px,92%);color:#e1e5d9}#shareStatus{font-size:15px}#shareText{font-size:16px}.recruitment p{color:#e5d5b3}
.planning-sheet{max-width:1000px;max-height:calc(100dvh - 50px)}.planning-sheet h2{font-size:38px}.planning-sheet p{font-size:18px}.planning-sheet table{font-size:18px}.planning-sheet th,.planning-sheet td{padding:12px 10px;overflow-wrap:anywhere}
@media(max-width:1100px){.stamp{display:none}#help{font-size:12px}}
@media(max-width:650px){header{left:16px;right:16px;gap:8px;top:18px}.brand{font-size:16px}.brand span{font-size:12px}#counter{font-size:12px;padding:10px 8px}#counter b{font-size:23px;margin:0 4px}#fps{font-size:12px;top:58px}footer{font-size:12px;left:16px;right:16px;bottom:16px}#menu{padding:105px 24px 65px}h1{font-size:54px}.intro,.rules{font-size:17px}.small{font-size:14px}.panel{padding:22px}.panel h2{font-size:32px}.panel p,.panel label{font-size:17px}.planning-sheet{padding:16px}.planning-sheet h2{font-size:30px}.planning-sheet p{font-size:16px}.planning-sheet table{font-size:15px}.planning-sheet th,.planning-sheet td{padding:10px 5px}#notice{font-size:16px}#readBoard{font-size:15px}}
@media(max-height:650px){#menu{padding-top:85px;padding-bottom:60px}h1{font-size:54px}.rules{margin:16px 0}.intro{margin:16px 0}.panel{padding:22px}}
@media(min-width:651px) and (max-height:800px){#menu{padding-top:90px;padding-bottom:40px}h1{font-size:70px;margin-bottom:18px}.intro{margin:14px 0}.rules{margin:16px 0;padding-top:8px}.rules p{margin:8px 0}.small{margin-top:12px}}
/* Phone layout and two-thumb input. Menus retain native scrolling and zoom. */
html,body{overscroll-behavior:none}#scene{touch-action:none;user-select:none;-webkit-user-select:none}.mobile-hint{display:none}#touch{display:none;pointer-events:none}button,a,input{ -webkit-tap-highlight-color:transparent}button,.job-cta{min-height:48px}.panel,.planning-sheet{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-color:#8f9e8c #152321}
.touch-ui .mobile-hint{display:block}.touch-ui #controllerStatus{display:none}.touch-ui #help{display:none}.touch-ui[data-mode=play] #touch{display:flex;inset:auto 0 max(24px,env(safe-area-inset-bottom));justify-content:space-between;align-items:end;padding:0 max(24px,env(safe-area-inset-right)) 0 max(24px,env(safe-area-inset-left));z-index:4}
.move-control{text-align:center;color:#d8dfcd;font-size:11px;letter-spacing:1px;text-shadow:0 1px 4px #000}.move-control>span{display:block;margin-top:10px}#moveStick{width:128px;height:128px;border:1px solid #d8dfcd70;border-radius:50%;background:#13252380;display:grid;place-items:center;pointer-events:auto;touch-action:none}#moveKnob{display:block;width:50px;height:50px;border-radius:50%;border:1px solid #dfd4ae;background:#c8bd9970;pointer-events:none;will-change:transform}.look-hint{width:145px;padding-bottom:55px;color:#cbd4c1;font-size:12px;text-align:center;line-height:1.7;text-shadow:0 1px 5px #000;pointer-events:none}
.touch-ui #pauseButton{top:max(76px,calc(env(safe-area-inset-top) + 68px));right:max(16px,env(safe-area-inset-right));width:48px;height:48px;font-size:22px;padding:8px}.touch-ui #notice{bottom:max(190px,calc(env(safe-area-inset-bottom) + 175px));font-size:16px;max-height:30dvh;overflow:auto;padding:12px}.touch-ui #readBoard{bottom:max(190px,calc(env(safe-area-inset-bottom) + 175px));font-size:15px;white-space:normal;width:max-content;max-width:90%;padding:12px 18px}.touch-ui footer{bottom:auto;top:max(62px,calc(env(safe-area-inset-top) + 55px));left:max(16px,env(safe-area-inset-left));font-size:11px;max-width:70%;pointer-events:none}.touch-ui #fps{display:none}
@media(max-width:650px){header{top:max(16px,env(safe-area-inset-top));left:max(14px,env(safe-area-inset-left));right:max(14px,env(safe-area-inset-right))}.brand{font-size:14px;max-width:52%}.brand span{font-size:10px}#counter{font-size:11px;padding:8px}#counter b{font-size:21px}#menu{padding:100px max(20px,env(safe-area-inset-right)) max(30px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left))}.menu-inner{min-width:0}h1{font-size:clamp(38px,10vw,54px);letter-spacing:-1px}.rules span{margin-right:8px}.rules{font-size:16px}.intro{font-size:17px}.small{font-size:14px}#pause,#ending,#planning{padding:12px;padding-top:max(12px,env(safe-area-inset-top));padding-bottom:max(12px,env(safe-area-inset-bottom))}.panel,#ending .panel,.planning-sheet{max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));padding:20px;min-width:0}.panel h2{font-size:30px}.panel p,.panel label{font-size:16px}.panel label{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.panel input[type=range]{flex:1;min-width:110px;min-height:36px}.panel input[type=checkbox]{width:22px;height:22px}.job-cta{font-size:15px}.planning-sheet h2{font-size:28px}.planning-sheet p{font-size:16px}#closePlanning{position:sticky;bottom:0;width:100%;box-shadow:0 -8px 18px #eee7d0}.eyebrow{font-size:12px;letter-spacing:1px}}
@media(max-width:480px){.planning-sheet table{display:block}.planning-sheet thead{display:none}.planning-sheet tbody{display:block}.planning-sheet tr{display:block;padding:10px;margin-bottom:10px;border:1px solid #b7b9a1}.planning-sheet td{display:grid;grid-template-columns:64px minmax(0,1fr);gap:8px;border:0;padding:5px 0;font-size:16px}.planning-sheet td::before{content:attr(data-label);font-weight:bold;font-size:13px;align-self:center}}
@media(pointer:coarse) and (orientation:landscape) and (max-height:550px){#menu{padding:76px max(30px,env(safe-area-inset-right)) 24px max(30px,env(safe-area-inset-left))}.menu-inner{width:min(650px,100%)}h1{font-size:44px}.stamp{display:none}.intro,.rules{font-size:16px}.panel h2{font-size:30px}.panel p,.panel label{font-size:16px}.touch-ui[data-mode=play] #touch{bottom:max(12px,env(safe-area-inset-bottom))}#moveStick{width:108px;height:108px}.move-control>span{margin-top:5px}.touch-ui #notice{bottom:24px;width:min(440px,52%);font-size:14px;max-height:27dvh}.touch-ui #readBoard{bottom:35px}.look-hint{font-size:11px}.touch-ui #pauseButton{top:max(68px,env(safe-area-inset-top))}}
.touch-ui #notice{bottom:max(260px,calc(env(safe-area-inset-bottom) + 245px))}
@media(max-width:650px) and (orientation:portrait){.touch-ui footer{top:max(88px,calc(env(safe-area-inset-top) + 80px));max-width:70%;line-height:1.5}.touch-ui #pauseButton{top:max(88px,calc(env(safe-area-inset-top) + 80px))}}
@media(pointer:coarse) and (orientation:landscape) and (max-height:550px){.touch-ui #notice{bottom:100px}}
@media(pointer:coarse) and (orientation:landscape) and (max-height:550px){header{top:max(12px,env(safe-area-inset-top));left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right))}.brand{font-size:16px}.brand span{display:none}#counter{font-size:12px;padding:8px 12px}#counter b{font-size:22px}.touch-ui footer{top:max(49px,calc(env(safe-area-inset-top) + 40px));font-size:10px}.touch-ui #pauseButton{top:70px}}
/* Compact mobile subtitles and tutorial messages. */
.touch-ui #notice{font-size:13px;line-height:1.4;padding:8px 10px;width:min(520px,88%);max-height:22dvh;text-align:left}
@media(orientation:landscape) and (max-height:550px){.touch-ui #notice{font-size:12px;line-height:1.35;padding:7px 10px;width:min(440px,54%);max-height:22dvh}}

/* Fullscreen is offered in mobile menus, outside the play area. */
.fullscreen-controls{display:none}.touch-ui .fullscreen-controls{display:block;margin-top:12px}.fullscreen-controls button{width:100%;min-height:48px}.fullscreen-controls [role=status]:empty{display:none}.fullscreen-controls [role=status]{font-size:13px;line-height:1.5;color:#d2d8cc}.fullscreen-controls button:disabled{opacity:.65;cursor:default}
