:root{font-family:"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:#353a35;background:#eeeae1;font-synthesis:none;--accent:#a56335;--line:#d6d5ca}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid #a56335;outline-offset:4px}[hidden]{display:none!important}.masthead{height:96px;margin:auto;padding:0 4.8%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:18px;font-size:12px;font-weight:600;letter-spacing:2px}.brand-mark{font:italic 46px Georgia,serif;letter-spacing:-5px;margin-right:5px}.brand small{display:block;font-size:9px;font-weight:400;letter-spacing:2px;color:#8c8e7f;margin-top:8px}.back-link{font-size:11px;color:#778071}.back-link span{margin-left:26px}main{max-width:1500px;margin:auto;padding:48px 3.8% 65px;display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:42px}.display-column{min-width:0;position:sticky;top:20px;align-self:start}.eyebrow{display:flex;align-items:center;gap:9px;font-size:9px;letter-spacing:2px;color:#9b754c;margin:4px 0 23px}.eyebrow i{width:5px;height:5px;border-radius:50%;background:#bd7639}h1{font-size:38px;line-height:1.35;font-weight:500;letter-spacing:-1.5px;margin:0 0 13px}.intro>p:last-child{font-size:12px;line-height:1.8;color:#8c8e7f;margin:0 0 30px}.terminal{--case:#292d29;--case-edge:#171c18;--panel:#31362f;--tile-top:#292c28;--tile-bottom:#242724;--ink:#efd99d;--seam:#090c09;--case-text:#b7b9a5;--case-muted:#7c8376;background:linear-gradient(140deg,var(--case),var(--case-edge));border-radius:13px;border:1px solid #ffffff18;box-shadow:0 26px 45px -30px #18241488,0 3px 0 #121a1477,inset 0 1px 0 #ffffff20;position:relative;padding:29px 25px 20px;isolation:isolate;overflow:hidden}.terminal:before{content:"";position:absolute;inset:0;z-index:-1;opacity:.12;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='130' height='130'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' opacity='.45' d='M0 0h130v130H0z'/%3E%3C/svg%3E")}.terminal[data-theme="ivory"]{--case:#e0ddcf;--case-edge:#bebdac;--panel:#b3b5a5;--tile-top:#f4f0e3;--tile-bottom:#e9e5d7;--seam:#b3b3a3;--case-text:#4e594b;--case-muted:#77816d}.terminal[data-theme="amber"]{--case:#4a3026;--case-edge:#251d17;--panel:#3a281f;--tile-top:#a6502d;--tile-bottom:#944326;--case-text:#e0b691;--case-muted:#ac8568}.terminal[data-theme="mint"]{--case:#344b43;--case-edge:#1b3028;--panel:#2c4137;--tile-top:#577065;--tile-bottom:#4b6558;--case-text:#b9d0bc;--case-muted:#8aa795}.terminal-heading{display:flex;justify-content:space-between;align-items:center;margin:0 4px 25px}.departures{display:flex;align-items:center;gap:12px;color:var(--case-text)}.departures svg{width:30px;height:30px;fill:currentColor}.departures>span{font-family:ui-monospace,Consolas,monospace;font-size:17px;letter-spacing:3px}.departures small{display:block;font-family:"Segoe UI","Microsoft YaHei",sans-serif;font-size:9px;letter-spacing:1px;color:var(--case-muted);margin-top:6px}.terminal-id{display:flex;align-items:center;gap:14px;font:10px ui-monospace,Consolas,monospace;color:var(--case-muted);letter-spacing:1px}.live-dot{width:5px;height:5px;border-radius:50%;background:#baaa6d;box-shadow:0 0 8px #d6b86244}.board-viewport{min-height:300px;display:flex;align-items:center;justify-content:center;perspective:1100px;padding:14px 0 26px}.flap-board{--columns:18;--cell-w:30px;--cell-h:46px;--cell-gap:3px;--tilt:5deg;display:grid;grid-template-columns:repeat(var(--columns),var(--cell-w));grid-auto-rows:var(--cell-h);gap:var(--cell-gap);padding:10px;background:var(--panel);border-radius:7px;box-shadow:inset 0 3px 8px #0008,0 1px 0 #ffffff18;transform:rotateX(var(--tilt));transform-style:preserve-3d}.flap-cell{position:relative;width:var(--cell-w);height:var(--cell-h);perspective:240px;color:var(--ink);border-radius:3px;box-shadow:0 2px 2px #0009;isolation:isolate;font-family:ui-monospace,"Cascadia Mono",Consolas,"Liberation Mono","Microsoft YaHei",monospace;font-size:calc(var(--cell-w)*1.12);font-weight:600;font-variant-numeric:tabular-nums;line-height:1}.flap-cell:after{content:"";position:absolute;top:calc(50% - .6px);left:0;right:0;height:1.2px;background:var(--seam);box-shadow:0 1px 0 #ffffff0b;z-index:8;pointer-events:none}.flap-cell:before{content:"";position:absolute;left:-1px;right:-1px;top:calc(50% - 2px);height:4px;background:linear-gradient(90deg,#0b100b 2px,transparent 2px,transparent calc(100% - 2px),#0b100b calc(100% - 2px));z-index:9;pointer-events:none}.half{position:absolute;left:0;width:100%;height:50%;overflow:hidden;backface-visibility:hidden;transform-style:preserve-3d;text-shadow:0 1px 1px #0005;contain:paint}.half.upper{top:0;border-radius:3px 3px 0 0;background:linear-gradient(180deg,#ffffff06,transparent 90%),var(--tile-top);border-top:1px solid #ffffff10}.half.lower{bottom:0;border-radius:0 0 3px 3px;background:linear-gradient(180deg,#0002,transparent 30%),var(--tile-bottom);border-bottom:1px solid #0005}.glyph{position:absolute;left:0;top:-1px;width:100%;height:var(--cell-h);display:grid;place-items:center;white-space:pre}.half.lower .glyph{top:calc(var(--cell-h)*-.5)}.flap-cell[data-wide="true"]{font-size:calc(var(--cell-w)*.82)}.flap-top{z-index:5;transform-origin:50% 100%}.flap-bottom{z-index:6;transform-origin:50% 0;transform:rotateX(90deg)}.terminal-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #ffffff0c;padding:16px 4px 0;font:9px ui-monospace,Consolas,monospace;letter-spacing:1.1px;color:var(--case-muted)}.terminal-footer>span:first-child{display:flex;align-items:center;gap:8px}#activity-dot{width:4px;height:4px;border-radius:50%;background:#849577}.terminal.is-running #activity-dot{background:#e6b366;box-shadow:0 0 6px #f8bc7166}.case-screw{position:absolute;bottom:11px;width:4px;height:4px;border-radius:50%;background:linear-gradient(135deg,#ffffff20 40%,#0009 42%,#0009 58%,#ffffff15 60%)}.screw-one{left:10px}.screw-two{right:10px}.display-actions{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:20px 1px 0}.display-actions p{font-size:11px;color:#8b8f80;line-height:1.7}.display-actions>div{display:flex;gap:10px}.display-actions button{border:1px solid #cdd2c3;border-radius:6px;background:transparent;color:#677560;font-size:11px;padding:10px 12px;white-space:nowrap}.display-actions button:hover{background:#e3e6d9}.flight-ticket{margin-top:27px;border:1px solid #d5d4c6;background:#f5f1e6;display:flex;align-items:center;gap:18px;padding:22px 26px;border-radius:5px;position:relative;color:#6d775f}.flight-ticket>div>span{display:block;font:8px ui-monospace,Consolas,monospace;letter-spacing:2px;color:#a3a58e;margin-bottom:7px}.flight-ticket strong{font-size:12px;font-weight:500}.ticket-icon{font-size:28px;color:#b18552}.ticket-route{flex:1;overflow:hidden;white-space:nowrap;color:#b4b69d;letter-spacing:3px}.ticket-seat{padding-left:24px;margin-left:15px;border-left:1px dashed #cbcdb9}.controls{min-width:0;padding-top:7px}.control-section{padding-bottom:28px;margin-bottom:30px;border-bottom:1px solid var(--line)}.section-label{display:flex;justify-content:space-between;align-items:center;font-size:8px;letter-spacing:1.3px;color:#929680}h2{font-size:21px;letter-spacing:-.5px;font-weight:500;margin:24px 0}.mode-tabs{display:flex;padding:4px;gap:4px;background:#e2e2d5;border-radius:7px;margin-bottom:20px}.mode-tabs button{flex:1;border:0;background:transparent;color:#858b74;border-radius:4px;font-size:11px;padding:9px 0}.mode-tabs button[aria-pressed="true"]{background:#f8f5eb;color:#505e44;box-shadow:0 1px 4px #303b2212}label{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#7c846e;gap:8px;margin:19px 0 9px}label output,label>span:not(:first-child){color:#929b83;font-size:10px;font-variant-numeric:tabular-nums}textarea,select{width:100%;border:1px solid #cfd3c3;background:#f7f5eb;border-radius:6px;color:#58694c}textarea{font:12px/1.9 ui-monospace,Consolas,"Microsoft YaHei",monospace;padding:12px;min-height:135px;max-height:360px;resize:vertical}select{padding:9px 10px;font-size:12px}.help{font-size:10px;color:#939881;line-height:1.8;margin:9px 0}.sample-buttons{display:flex;flex-wrap:wrap;gap:7px;margin:13px 0 18px}.sample-buttons button{border:1px solid #d0d4c4;background:transparent;color:#8b947b;border-radius:4px;font-size:10px;padding:6px 8px}.sample-buttons button:hover{background:#e1e5d7;color:#536345}.apply-button{display:flex;align-items:center;justify-content:space-between;background:#536449;color:#fff8e7;border:0;border-radius:6px;width:100%;padding:13px 15px;font-size:12px}.apply-button:hover{background:#405338}.apply-button>span:last-child{font-size:20px}.two-inputs{display:grid;grid-template-columns:1fr 1fr;gap:14px}input[type="range"]{display:block;width:100%;height:24px;margin:0;accent-color:#7b8966;cursor:pointer;touch-action:pan-y}.theme-options{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:20px 0}.theme-options button{display:flex;align-items:center;gap:8px;border:1px solid #d1d5c5;background:transparent;border-radius:5px;padding:10px 9px;color:#859073;font-size:11px}.theme-options button[aria-pressed="true"]{border-color:#778968;background:#e1e7d7;color:#4c613f}.theme-options i{width:12px;height:12px;border-radius:50%;box-shadow:inset 0 0 0 1px #0001}input[type="color"]{width:37px;height:25px;border:1px solid #cdd3c0;padding:2px;background:#f6f4e9;border-radius:4px;cursor:pointer}.sound-label{margin-top:25px}.sound-label small{font-size:9px;color:#9ba08b;margin-left:6px}input[type="checkbox"]{width:17px;height:17px;accent-color:#647b50}.settings-actions{display:flex;gap:22px;margin-top:22px}.settings-actions button,.reset-button{font-size:10px;color:#8b987c;background:none;border:0;padding:0;border-bottom:1px solid #cbd2bd}.reset-button{margin-top:20px;color:#a1a68e}footer{max-width:1400px;margin:0 3.8%;padding:23px 0 30px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:15px;font-size:9px;color:#979e88}footer>span:first-child{font-size:8px;letter-spacing:1px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}@media(min-width:1550px){footer{margin:0 auto}}@media(max-width:1050px){main{gap:25px;grid-template-columns:minmax(0,1fr) 270px;padding:35px 25px}.terminal{padding:24px 17px 18px}.departures>span{font-size:14px;letter-spacing:2px}.terminal-id{font-size:8px;gap:8px}.flight-ticket{gap:10px;padding:18px}.ticket-seat{padding-left:14px;margin-left:0}.display-actions{align-items:flex-start}.display-actions p{font-size:10px}.display-actions button{font-size:10px;padding:9px}.board-viewport{min-height:270px}}@media(max-width:740px){.masthead{height:77px;padding:0 21px}.brand{font-size:10px;letter-spacing:1px;gap:12px}.brand-mark{font-size:37px}.brand small{font-size:8px}.back-link{font-size:10px}.back-link span{margin-left:7px}main{display:block;padding:29px 18px 38px}.display-column{position:static}h1{font-size:30px}.eyebrow{font-size:8px;margin-bottom:16px}.intro>p:last-child{font-size:11px;margin-bottom:25px}.terminal{padding:23px 13px 17px;border-radius:10px}.terminal-heading{margin:0 2px 15px}.departures svg{width:23px;height:23px}.departures{gap:8px}.departures>span{font-size:14px}.departures small{font-size:8px}.board-viewport{min-height:210px;padding:15px 0 22px}.terminal-footer{font-size:7px;letter-spacing:.7px;padding-top:14px}.display-actions{align-items:center;padding-top:14px}.display-actions p{max-width:140px;margin:0}.display-actions button{padding:10px}.display-actions>div{gap:6px}.flight-ticket{margin-top:22px;padding:20px 17px;gap:11px}.flight-ticket strong{font-size:11px}.ticket-route{letter-spacing:0}.ticket-seat{display:none}.controls{padding:40px 6px 0}textarea{font-size:16px}.control-section{padding-bottom:25px;margin-bottom:28px}.theme-options button{padding:13px;font-size:12px}.mode-tabs button{padding:12px;font-size:12px}input[type="range"]{height:32px}.help{font-size:11px}footer{margin:0 24px;flex-wrap:wrap;font-size:8px;gap:11px}.flap-cell{border-radius:2px}.half.upper{border-radius:2px 2px 0 0}.half.lower{border-radius:0 0 2px 2px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Physical Three.js display */
#flap-board{display:block;width:100%;height:340px;padding:0;transform:none;background:none;box-shadow:none;border:0}#flap-board canvas{display:block;width:100%;height:100%;touch-action:none}.board-viewport{padding:0;overflow:hidden}.display-actions>div{flex-wrap:wrap}@media(max-width:600px){#flap-board{height:240px}.display-actions{align-items:flex-start}}

/* The physical metal-and-glass frame is the display enclosure. */
.terminal{background:transparent!important;box-shadow:none;border:0;padding:18px 0}.terminal-heading,.terminal-footer{color:#5c6256}.terminal-heading svg{fill:currentColor}.case-screw{display:none}

.terminal{--case-text:#565f50;--case-muted:#747d69}.terminal:before{display:none}
