:root{color-scheme:dark;font-family:system-ui,-apple-system,"Noto Sans JP",sans-serif;background:#070e11;color:#d6e4e4}*{box-sizing:border-box}body{margin:0}header{height:78px;padding:0 32px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #26363b;background:#0a1317}.brand{font-family:monospace;font-size:26px;letter-spacing:3px;color:#b2decf}.brand span{font-family:system-ui;font-size:14px;letter-spacing:1px;margin-left:20px;color:#bdcccc}.sector{font-size:14px;color:#899da0;display:flex;gap:15px}.sector b{color:#d3dddd;font-weight:500}button{background:#14232a;border:1px solid #3b5359;color:#d6e4e4;padding:10px 16px;font:inherit;font-size:14px;cursor:pointer;border-radius:4px}button:hover{border-color:#b2decf;background:#20373e}button:focus-visible{outline:2px solid #a7f2d5;outline-offset:3px}main{max-width:1450px;margin:auto;padding:24px 32px 10px}.viewport{position:relative;overflow:hidden;border:1px solid #2d4147;background:#0b171d;aspect-ratio:16/9;min-height:390px}canvas{display:block;width:100%;height:100%;outline:none}.location{position:absolute;top:24px;left:26px;pointer-events:none;text-shadow:0 2px 10px #000}.location span{font-family:monospace;font-size:12px;letter-spacing:3px;color:#8db0ad}h1{font-size:20px;font-weight:500;letter-spacing:2px;margin:8px 0}.objective{position:absolute;right:24px;top:28px;font-size:14px;border-left:2px solid #92bfaf;padding:6px 12px;background:#071319ab}.prompt{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);background:#102229ec;border:1px solid #83ad9e;padding:12px 22px;white-space:nowrap;font-size:16px}.dialog{position:absolute;left:5%;right:5%;bottom:25px;border:1px solid #668c80;border-top:2px solid #b0e1ce;background:#071316f5;min-height:176px;padding:20px 26px;box-shadow:0 10px 50px #0008}.speaker{font-size:14px;letter-spacing:3px;color:#9cd0bb}.dialog p{font-size:clamp(16px,1.65vw,22px);line-height:1.8;white-space:pre-line;margin:12px 0 10px}.dialog button{float:right}.dialog #count{font:12px monospace;color:#829e99}kbd{font:12px monospace;padding:2px 5px;border:1px solid #49645c;margin-left:10px}.veil{pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 100px #0007}footer{display:flex;justify-content:space-between;align-items:center;margin-top:14px;gap:12px}footer>div{display:flex;gap:20px;align-items:center;font-size:14px;color:#99adb2}.tag{border:1px solid #344e52;color:#b0d4c7;padding:5px 10px;font-size:12px}.note{font-size:12px;color:#738589;margin:18px 0}.touch{display:none}.dpad{display:grid;grid-template-columns:repeat(3,48px);gap:4px}.dpad button:first-child{grid-column:2}.dpad button:nth-child(2){grid-column:1}.touch button{touch-action:none;user-select:none}@media(max-width:760px){header{padding:0 16px;height:64px}.brand{font-size:20px}.brand span{font-size:12px;display:block;margin:3px 0 0;letter-spacing:0}.sector{display:none}main{padding:14px 12px}.viewport{aspect-ratio:4/5;min-height:420px}.location{top:16px;left:16px}h1{font-size:17px}.objective{font-size:12px;top:78px;left:16px;right:auto}.touch{display:flex;justify-content:space-between;align-items:center;margin-top:16px}footer>div{flex-wrap:wrap;gap:10px}footer>div>span:not(.tag){display:none}.dialog{left:3%;right:3%;padding:16px;bottom:16px}.dialog p{font-size:16px}.prompt{font-size:14px;padding:10px 14px}.note{margin-top:14px}}@media(prefers-reduced-motion:reduce){.veil{box-shadow:none}}

/* Screen controls are available at every width, including iPad landscape. */
.touch{display:flex;position:absolute;left:18px;right:18px;bottom:16px;margin:0;justify-content:space-between;align-items:flex-end;pointer-events:none;z-index:3}
.touch>*{pointer-events:auto}
.dpad{grid-template-columns:repeat(3,48px);grid-template-rows:repeat(3,48px);gap:4px}
.dpad button{padding:0;font-size:20px;background:#152a32ee;border-color:#6d9390;border-radius:8px;-webkit-user-select:none;-webkit-touch-callout:none}
.dpad button:nth-child(1){grid-column:2;grid-row:1}
.dpad button:nth-child(2){grid-column:1;grid-row:2}
.dpad button:nth-child(3){grid-column:2;grid-row:3}
.dpad button:nth-child(4){grid-column:3;grid-row:2}
.dpad button.is-pressed{background:#52796e;border-color:#c9ffe2;box-shadow:0 0 14px #8ad5b544}
#interact{min-width:142px;min-height:60px;margin-bottom:44px;background:#26483fee;border:1px solid #9bceba;border-radius:10px;font-size:16px;touch-action:manipulation}
.prompt{bottom:182px;max-width:94%;white-space:normal;text-align:center}
.dialog{bottom:181px;z-index:4;max-height:calc(100% - 200px);overflow:auto}
.viewport.talking .dpad{opacity:.35;pointer-events:none}
.viewport.talking .dpad button{pointer-events:none}
@media(any-pointer:coarse){footer>div>span:not(.tag){display:none}.viewport{min-height:500px}button{min-height:44px}}
@media(max-width:760px){.touch{left:12px;right:12px;bottom:12px;margin:0}.viewport{height:calc(100svh - 124px);min-height:460px;aspect-ratio:auto}.dialog{bottom:176px;max-height:calc(100% - 190px)}.prompt{bottom:177px}.objective{max-width:calc(100% - 32px)}#interact{min-width:128px}}
@media(max-height:540px) and (orientation:landscape){header{height:54px}main{padding:10px 12px}.viewport{height:calc(100svh - 100px);min-height:320px;aspect-ratio:auto}.dpad{grid-template-columns:repeat(3,40px);grid-template-rows:repeat(3,40px)}.touch{bottom:10px}.dialog{bottom:142px;max-height:calc(100% - 155px);min-height:0;padding:12px 16px}.dialog p{font-size:16px;margin:5px 0;line-height:1.5}.prompt{bottom:146px}#interact{margin-bottom:36px;min-height:48px}.objective{top:14px;left:auto;right:16px;max-width:50%}.location{top:12px}h1{font-size:16px}}

.header-actions{display:flex;align-items:center;gap:10px}.meet-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 16px;border:1px solid #93bca9;border-radius:5px;background:#24473c;color:#e4f5ec;text-decoration:none;font-size:14px;line-height:1.4}.meet-link:hover{background:#356552}.meet-link:focus-visible{outline:2px solid #b9f5d4;outline-offset:3px}.meet-link[hidden]{display:none}#meeting-join{margin:0 12px 8px 0}.dialog:has(#meeting-join:not([hidden])){min-height:210px}
@media(max-width:960px){.sector{display:none}}
@media(max-width:560px){header{height:auto;min-height:84px;padding:10px 12px;gap:8px}.header-actions{gap:6px}.meet-link{padding:9px 10px;max-width:124px;text-align:center}.header-actions #sound{padding:8px;font-size:12px}.brand span{max-width:115px;line-height:1.5}.viewport{height:calc(100svh - 146px)}#meeting-join{max-width:none}}
#schedule{color-scheme:light;width:min(1120px,96vw);max-width:96vw;max-height:92svh;border:0;border-radius:16px;padding:0;background:#fff;color:#263238;box-shadow:0 24px 100px #0008}#schedule::backdrop{background:#041017b8}.calendar-shell{padding:24px;font-family:system-ui,sans-serif}.calendar-header{height:auto;padding:0 0 18px;border:0;background:#fff;color:#28343b;gap:12px}.calendar-header>div{display:flex;align-items:center;gap:14px}.calendar-mark{background:#4285f4;color:#fff;border-top:8px solid #2a64c9;padding:4px 8px;font-size:21px;font-weight:700;border-radius:4px}.calendar-header h2{font-size:23px;font-weight:500;margin:0}.calendar-shell button{color:#34454b;border:1px solid #dadce0;background:#fff;border-radius:7px;font-size:14px}.calendar-shell button:hover{background:#edf3fa}.calendar-shell button:focus-visible{outline:2px solid #1a73e8}.calendar-toolbar{display:flex;align-items:center;gap:8px}.calendar-toolbar h3{font-size:19px;font-weight:500;margin:0 12px}.calendar-view{margin-left:auto;border:1px solid #dadce0;border-radius:5px;padding:8px 18px;font-size:14px}.calendar-caption{font-size:12px;color:#68777e;margin:14px 0}.calendar-scroll{max-height:54svh;overflow:auto;border:1px solid #e0e5e8;border-radius:8px}.calendar-days,.calendar-grid{display:grid;grid-template-columns:58px repeat(7,minmax(100px,1fr));min-width:800px}.calendar-days{position:sticky;top:0;z-index:2;background:#fff;border-bottom:1px solid #dadce0}.time-head{display:flex;align-items:center;justify-content:center;font-size:11px;color:#7b8c93}.calendar-day{display:flex;flex-direction:column;align-items:center;padding:12px;border-left:1px solid #edf0f2;gap:5px}.calendar-day span{font-size:12px;color:#637179}.calendar-day b{display:grid;place-items:center;width:34px;height:34px;font-size:21px;font-weight:500}.calendar-day.is-today b{background:#1a73e8;color:#fff;border-radius:50%}.calendar-day.is-today span{color:#1a73e8}.calendar-grid{height:660px}.time-column{position:relative}.time-column span{position:absolute;right:8px;font-size:11px;color:#6a7c85;padding-top:3px}.day-column{position:relative;border-left:1px solid #dadce0;background:repeating-linear-gradient(to bottom,transparent 0,transparent 59px,#e7ecef 59px,#e7ecef 60px)}.calendar-shell .calendar-event{position:absolute;left:3px;right:3px;width:calc(100% - 6px);padding:5px 7px;text-align:left;border:0;border-radius:5px;overflow:hidden;color:#fff;display:flex;flex-direction:column;gap:3px;min-height:0}.calendar-event strong{font-size:12px;line-height:1.4;font-weight:500}.calendar-event span{font-size:11px;line-height:1.4}.calendar-shell .event-type-0,.calendar-shell .event-type-0:hover{background:#3376d1}.calendar-shell .event-type-1,.calendar-shell .event-type-1:hover{background:#8463bc}.calendar-shell .event-type-2,.calendar-shell .event-type-2:hover{background:#2d8977}.calendar-legend{display:flex;flex-wrap:wrap;gap:20px;font-size:12px;color:#3376d1;padding-top:16px}.calendar-legend span:nth-child(2){color:#8463bc}.calendar-legend span:nth-child(3){color:#2d8977}.event-detail{padding:14px 18px;background:#edf3fb;border-left:3px solid #4285f4;margin-top:12px;border-radius:5px}.event-detail strong{font-size:16px}.event-detail p{font-size:14px;margin:7px 0;line-height:1.5}@media(max-width:760px){.calendar-shell{padding:14px}.calendar-header h2{font-size:18px}.calendar-toolbar{flex-wrap:wrap}.calendar-toolbar h3{font-size:16px;order:5;width:100%;margin:8px 0}.calendar-header{min-height:0}.calendar-view{margin-left:auto}.calendar-scroll{max-height:48svh}.calendar-legend{gap:12px}}

.calendar-grid{height:1440px}.calendar-status{min-height:24px;font-size:14px;color:#57706c;margin:8px 0}.calendar-status.error{color:#b3261e}.calendar-toolbar[hidden],.calendar-scroll[hidden],#event-editor[hidden]{display:none}#event-editor{padding:8px 0;max-width:720px;margin:auto}#event-editor h3{font-size:20px;font-weight:500}#event-editor label{display:flex;flex-direction:column;gap:6px;font-size:14px;margin-bottom:14px}#event-editor input,#event-editor textarea,#event-editor select{width:100%;font:inherit;font-size:16px;color:#273940;background:#fff;border:1px solid #c3ced4;padding:10px;border-radius:6px;min-height:44px}#event-editor input:focus,#event-editor textarea:focus,#event-editor select:focus{outline:2px solid #4285f4;border-color:transparent}.editor-row{display:flex;gap:14px}.editor-row>label{flex:1;min-width:0}.editor-actions{display:flex;gap:10px;flex-wrap:wrap}.calendar-shell #event-save,.calendar-shell #calendar-new{background:#1a73e8;color:#fff;border-color:#1a73e8}.calendar-shell #event-delete{color:#b3261e;border-color:#e6baba;margin-left:auto}#editor-status{font-size:14px;line-height:1.6;color:#a52d27;min-height:22px}#event-delete[hidden],#calendar-new[hidden]{display:none}.calendar-shell button:disabled{opacity:.5;cursor:wait}.calendar-toolbar{flex-wrap:wrap}.calendar-toolbar h3{flex:1}@media(max-width:560px){.editor-row{gap:8px;flex-wrap:wrap}.editor-row label:first-child{flex-basis:100%}.calendar-toolbar h3{flex-basis:100%;order:5}.calendar-view{display:none}#event-editor{max-height:64svh;overflow:auto;padding:0 2px 12px}}
.hamburger{font-size:24px;min-width:46px;padding:6px 10px}.app-header{gap:12px}.app-header .brand{margin-right:auto}.sidebar-open>.app-header{margin-left:260px}.sidebar-open>main{margin-left:260px;max-width:1450px}.sidebar-open .sector{display:none}#lab-sidebar{position:fixed;inset:0 auto 0 0;width:260px;background:#251a2d;color:#e5dfeb;z-index:8;display:flex;flex-direction:column;padding:22px 16px;transform:translateX(-100%);border-right:1px solid #47394f;transition:transform .18s ease}.sidebar-open #lab-sidebar{transform:translateX(0)}.sidebar-logo{font:bold 28px monospace;letter-spacing:3px;margin-bottom:28px}.sidebar-logo span{display:block;font-size:11px;letter-spacing:2px;color:#ae9eb9;margin-top:5px}.sidebar-label,.channel-heading{font-size:14px;color:#c7b9d1;margin-bottom:10px}#lab-select{width:100%;font-size:16px;min-height:46px;background:#392b43;color:#fff;border:1px solid #63516e;border-radius:6px;padding:8px}.sidebar-actions{display:flex;gap:7px;margin:10px 0 26px}#lab-sidebar button{background:transparent;border-color:#594761;color:#e4deea;padding:9px;font-size:14px;text-align:left}#lab-sidebar button:hover{background:#403049}#lab-sidebar [hidden]{display:none}.channel-heading{display:flex;align-items:center;justify-content:space-between}.channel-heading button{font-size:23px!important;padding:0 10px!important}#channel-list{overflow-y:auto;min-height:100px}.channel-row{display:flex;gap:4px;margin-bottom:4px}.channel-row .channel-button{border:0!important;flex:1;min-width:0;white-space:normal;overflow-wrap:anywhere}.channel-row .channel-button.selected{background:#785088!important;color:#fff!important}.channel-edit{border:0!important;width:32px}.sidebar-bottom{margin-top:auto;border-top:1px solid #4a3953;padding-top:16px;display:flex;flex-direction:column;gap:8px}.sidebar-bottom>button{min-height:42px}#sidebar-account{font-size:13px;color:#baaac5;overflow-wrap:anywhere;margin:4px 2px}#sidebar-status{font-size:13px;color:#efb9b9;line-height:1.5;margin:0}#sidebar-shade{position:fixed;inset:0;z-index:7;background:#0008}.workspace-dialog{color-scheme:light;width:min(500px,94vw);max-height:90svh;padding:24px;border:0;border-radius:12px;background:#f9fbfc;color:#26383d;box-shadow:0 25px 100px #0008}.workspace-dialog::backdrop{background:#08111cb8}.workspace-modal-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:16px}.workspace-modal-head h2{font-size:21px;font-weight:500;margin:0}.workspace-dialog button{background:#fff;color:#34464d;border-color:#c3cdd3;min-height:44px}.workspace-dialog form{display:flex;flex-direction:column;gap:14px}.workspace-dialog label{display:flex;flex-direction:column;gap:6px;font-size:14px}.workspace-dialog input,.workspace-dialog select{font:inherit;font-size:16px;border:1px solid #bbc8ce;border-radius:5px;background:#fff;color:#23363e;padding:10px;min-height:44px;width:100%}.workspace-dialog input:focus{outline:2px solid #80639c;border-color:transparent}.workspace-dialog .primary{background:#694481;color:#fff;border-color:#694481}.workspace-dialog .checkbox-label{flex-direction:row;align-items:center}.checkbox-label input{width:20px;height:20px;min-height:20px}.field-help{font-size:12px;color:#66777e;line-height:1.6;margin:0}.auth-tabs{display:flex;gap:8px;margin-bottom:20px}.auth-tabs button{flex:1}.workspace-dialog .danger,.workspace-dialog #room-archive{color:#a22f37;border-color:#d6a6aa;margin-top:16px}.management-danger p{font-size:12px;color:#7a686b}#workspace-status{font-size:14px;color:#a73134;line-height:1.6}.avatar-fields{display:flex;gap:24px;align-items:center}.avatar-fields canvas{width:120px;height:120px;border:1px solid #c4d5ca;border-radius:8px}.avatar-fields>div{flex:1;display:flex;flex-direction:column;gap:12px}.workspace-dialog input[type=color]{padding:4px}.workspace-dialog details{margin-top:24px;font-size:14px}.workspace-dialog summary{cursor:pointer;margin-bottom:16px}.workspace-dialog button:disabled{opacity:.5;cursor:wait}@media(max-width:1100px){.app-header .sector{display:none}.app-header .brand span{display:block;margin-left:0;font-size:12px}.app-header .brand{font-size:22px}.app-header{padding:12px 16px;height:auto;min-height:78px}.header-actions{gap:6px}}@media(max-width:900px){.sidebar-open>.app-header,.sidebar-open>main{margin-left:0}#lab-sidebar{width:260px}.app-header .brand span{max-width:130px}.app-header .brand{font-size:20px}.hamburger{min-width:40px}.app-header{gap:8px;padding:10px}.header-actions #sound{font-size:11px;min-width:0}.header-actions .meet-link{font-size:12px;max-width:94px;padding:8px}.app-header .brand{min-width:0}.app-header .brand span{overflow-wrap:anywhere}.workspace-dialog{padding:18px}}@media(prefers-reduced-motion:reduce){#lab-sidebar{transition:none}}

#presence-status{font-size:14px;line-height:1.6;margin:8px 0;color:#c4dce0}#presence-status[data-error="true"]{color:#f2c9a1}

[hidden]{display:none!important}
#sidebar-login-state{font-size:16px;line-height:1.7;color:#efe6f6;overflow-wrap:anywhere;padding:10px 0}
#sidebar-account{font-size:14px}
#workspace-navigation{min-height:0;overflow-y:auto}
.login-screen{min-height:calc(100svh - 90px);display:flex;align-items:center;justify-content:center;padding:32px 20px}
.login-card{width:min(100%,480px);background:#10232c;border:1px solid #37535f;border-radius:16px;padding:32px;box-shadow:0 18px 70px #0004}
.login-kicker{font:14px monospace;letter-spacing:2px;color:#9dccd9}
.login-card h1{font-size:28px;margin:12px 0}.login-intro{color:#bed0d6;font-size:16px;line-height:1.7;margin-bottom:24px}
.login-card form{display:flex;flex-direction:column;gap:18px}.login-card label{font-size:16px;display:flex;flex-direction:column;gap:8px}
.login-card input{width:100%;min-height:48px;font:inherit;font-size:16px;padding:12px;color:#edf7fa;background:#081820;border:1px solid #54737f;border-radius:7px}
.login-card input:focus{outline:2px solid #a0d8e4;outline-offset:2px}.login-card button{min-height:48px;font-size:16px}
.login-card .primary{background:#387385;color:white;border-color:#569bae}.login-card #gate-register{width:100%;margin-top:12px;background:transparent}
#gate-status{font-size:14px;line-height:1.7;color:#f3bcad;margin:0}.login-card button:disabled{opacity:.6;cursor:wait}
@media(max-width:600px){.login-screen{padding:20px 12px;align-items:flex-start}.login-card{padding:24px 20px}.login-card h1{font-size:25px}}

body[data-room-theme="beach"] .veil,body[data-room-theme="cafe"] .veil{box-shadow:inset 0 0 35px #0003}.location h1{background:#07161dcc;padding:6px 10px;border-radius:4px;max-width:calc(100vw - 90px);overflow-wrap:anywhere}

.room-members{margin-top:26px;border-top:1px solid #d5dee3;padding-top:18px}.member-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.member-heading h3{font-size:18px;margin:0}.member-help,#members-status{font-size:14px;line-height:1.6}.member-help{color:#5b6c74}.member-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid #dce4e8}.member-identity{min-width:0;display:flex;flex-direction:column;gap:4px;overflow-wrap:anywhere;font-size:16px}.member-identity span{font-size:14px;color:#5b6c74}.member-role{font-size:14px;white-space:nowrap;color:#65437d}.member-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;flex-shrink:0}.workspace-dialog .member-remove{color:#a22f37;border-color:#d6a6aa;font-size:14px}.management-danger{border-top:1px solid #d5dee3;margin-top:24px}.workspace-dialog{overflow-y:auto}@media(max-width:480px){.member-row{align-items:flex-start;flex-wrap:wrap}.member-actions{margin-left:auto}}

.chat-main{padding:24px;min-height:calc(100svh - 90px);background:#f5f7fb;color:#283442}.chat-shell{max-width:1000px;margin:auto;display:flex;flex-direction:column;height:calc(100svh - 140px);min-height:450px}.chat-shell h1{font-size:22px;margin:0 0 18px;overflow-wrap:anywhere}.chat-messages{flex:1;min-height:180px;overflow-y:auto;background:#fff;border:1px solid #d9dfe8;border-radius:8px;padding:18px}.chat-message{padding:12px 0;border-bottom:1px solid #e9edf2}.chat-message strong{font-size:16px;color:#65447b;overflow-wrap:anywhere}.chat-message p{margin:7px 0 0;font-size:16px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}#chat-form{display:grid;grid-template-columns:180px 1fr auto;align-items:end;gap:12px}#chat-form label{display:flex;flex-direction:column;gap:6px;font-size:14px}#chat-form input,#chat-form textarea{font:inherit;font-size:16px;width:100%;border:1px solid #b9c5d4;border-radius:6px;padding:10px;background:#fff;color:#273546}#chat-send{min-height:44px;background:#694481;color:#fff;border-color:#694481}#chat-status{font-size:14px;min-height:22px;margin:10px 0}#chat-send:disabled{opacity:.5}@media(max-width:650px){.chat-main{padding:14px}.chat-shell{height:calc(100svh - 120px)}#chat-form{grid-template-columns:1fr auto}#chat-form label:first-child{grid-column:1/-1}#chat-form textarea{min-height:80px}.chat-messages{padding:12px}}

#sidebar-meetings{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}#sidebar-meetings .sidebar-label{margin:0 0 4px}#sidebar-meetings button{overflow-wrap:anywhere;min-height:44px}#sidebar-meetings[hidden]{display:none}.meeting-switch{display:flex;gap:8px;margin-bottom:16px}.meeting-switch button{flex:1}.meeting-help{font-size:16px;line-height:1.6}#meeting-enter{background:#345d4a;color:#fff;margin-bottom:6px}#header-meeting{max-width:190px;overflow-wrap:anywhere}

#lab-sidebar{overflow-y:auto}#lab-sidebar .sidebar-logo,#workspace-navigation,.sidebar-bottom{flex-shrink:0}

#gate-create-room{width:100%;margin-top:10px;background:transparent;color:#365069;border-color:#b9cbd7;min-height:44px}.registration-guide{margin:20px 0 0;font-size:14px;line-height:1.8;color:#4d6676}.success-popup{position:fixed;right:24px;bottom:24px;z-index:30;display:flex;align-items:flex-start;gap:14px;width:min(430px,calc(100vw - 32px));padding:18px 20px;border:1px solid #80a539;border-left:6px solid #6f981e;border-radius:10px;background:#dcf5a7;color:#263d13;box-shadow:0 10px 40px #10220d33}.success-popup[hidden]{display:none}.success-popup p{margin:0;flex:1;font-size:16px;line-height:1.7}.success-popup button{background:transparent;color:#263d13;border:0;min-height:44px;padding:6px 10px}@media(max-width:560px){.success-popup{right:16px;bottom:16px}}

/* Clear controls and readable shared calendar. */
.touch{left:20px;right:auto;bottom:18px}.dpad{--key-size:56px;grid-template-columns:repeat(3,var(--key-size));grid-template-rows:repeat(3,var(--key-size));gap:6px;padding:8px;border-radius:20px;background:#07141ceb;border:1px solid #7897a9;box-shadow:0 4px 18px #0008}
.dpad button{color:#fff;background:#244458;border:2px solid #a4c8dd;font-size:24px;font-weight:700;box-shadow:0 3px 0 #07141c}
.dpad button:hover{background:#35617b}.dpad button.is-pressed,.dpad button:active{background:#417898;border-color:#fff;box-shadow:none}
.dpad #interact{grid-column:2;grid-row:2;min-width:0;min-height:0;width:var(--key-size);height:var(--key-size);margin:0;padding:12px;border:2px solid #dcf7aa;border-radius:12px;background:#c8ed8e;color:#193919;touch-action:manipulation}
#interact svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.dpad #interact:hover{background:#e1ffb7}
.viewport.talking .dpad{opacity:1;pointer-events:auto}.viewport.talking .dpad button[data-key]{opacity:.35;pointer-events:none}.viewport.talking #interact{pointer-events:auto}
.prompt{bottom:224px;background:#091b2cf5;border:2px solid #c8ed8e;color:#fff;font-weight:600}.dialog{bottom:224px;max-height:calc(100% - 242px)}
.calendar-shell .calendar-days,.calendar-shell .calendar-grid{grid-template-columns:70px repeat(7,minmax(140px,1fr));min-width:1050px}.calendar-grid{height:2160px}.day-column{background:repeating-linear-gradient(to bottom,transparent 0,transparent 89px,#b8c8d4 89px,#b8c8d4 90px)}
.calendar-scroll{max-height:60svh;border-color:#a6b8c8}.calendar-day{background:#f6f9fc;border-left-color:#c6d3df}.calendar-day span{font-size:14px;color:#354b5a;font-weight:600}.calendar-day b{font-size:24px;font-weight:700}.time-head,.time-column span{font-size:13px;color:#344c60}.calendar-caption,.calendar-legend{font-size:14px;color:#405466}.calendar-shell .calendar-event{padding:6px 8px;border:1px solid #ffffff70;border-left:4px solid #ffffffb0;border-radius:6px}.calendar-event strong{font-size:14px;line-height:1.4;font-weight:700}.calendar-event span{font-size:12px;font-weight:500}.calendar-shell .event-type-0,.calendar-shell .event-type-0:hover{background:#175bb1}.calendar-shell .event-type-1,.calendar-shell .event-type-1:hover{background:#674399}.calendar-shell .event-type-2,.calendar-shell .event-type-2:hover{background:#166b58}.calendar-legend{gap:16px}.calendar-legend span:first-child{color:#175bb1}.calendar-legend span:nth-child(2){color:#674399}.calendar-legend span:nth-child(3){color:#166b58}.calendar-shell button{min-height:44px}.calendar-header h2{font-weight:700}
@media(max-width:760px){.touch{left:12px;right:auto;bottom:12px}.dpad{--key-size:52px}.prompt{bottom:206px;font-size:15px}.dialog{bottom:206px;max-height:calc(100% - 222px)}.calendar-scroll{max-height:56svh}.calendar-shell{padding:14px}.calendar-header h2{font-size:20px}.calendar-caption{line-height:1.7}}
@media(max-height:540px) and (orientation:landscape){.dpad{--key-size:44px;gap:4px;padding:6px}.touch{bottom:10px}.prompt{bottom:170px}.dialog{bottom:170px;max-height:calc(100% - 182px)}.dpad #interact{padding:9px}.calendar-scroll{max-height:43svh}}
