.platform-downloads{text-align:left;max-width:100%;display:inline-block;position:relative}.platform-downloads>button{border:1px solid var(--border);min-height:44px;font:inherit;color:var(--text);background:var(--surface-raised);cursor:pointer;border-radius:10px;padding:.6rem .9rem;font-weight:650}.platform-downloads>nav{z-index:100;border:1px solid var(--border);background:var(--surface);border-radius:12px;width:min(340px,100vw - 3rem);max-height:65vh;padding:.4rem;position:absolute;inset-block-start:calc(100% + .4rem);inset-inline-start:0;overflow:auto;box-shadow:0 8px 28px #0005}.platform-downloads>nav[hidden]{display:none}.platform-downloads a{overflow-wrap:anywhere;border-radius:7px;flex-direction:column;align-items:flex-start;gap:.2rem;min-height:44px;padding:.65rem;font-weight:400;text-decoration:none;display:flex}.platform-downloads small{color:var(--muted);font-size:.82rem;line-height:1.4}.platform-downloads a:hover{background:var(--surface-raised)}.platform-downloads :focus-visible{outline:3px solid var(--accent);outline-offset:2px}.platform-downloads>button:not(:disabled):hover{background:var(--surface-raised);color:var(--text)}.launch-links .platform-downloads a{text-align:left;align-items:flex-start;font-weight:400;text-decoration:none}header .platform-downloads>nav{inset-inline:auto 0}.guidance-offer,.guidance-tip{background:var(--surface);color:var(--text);border:1px solid var(--border);overflow-wrap:anywhere;border-radius:.65rem;min-width:0;margin-block:.7rem;padding:.8rem 1rem}.guidance-offer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;display:flex}.guidance-offer p,.guidance-tip p{margin:.3rem 0 .65rem;line-height:1.5}.guidance-tip{font-size:.9em}.guidance-tip .actions{justify-content:space-between;align-items:center}.guidance-dialog{box-sizing:border-box;width:min(34rem,100vw - 1.5rem);max-height:calc(100dvh - 2rem - env(safe-area-inset-top) - env(safe-area-inset-bottom));overscroll-behavior:contain;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:.8rem;margin:auto;padding:clamp(1rem,4vw,1.6rem);overflow-y:auto;box-shadow:0 1rem 4rem #0006}.guidance-dialog::backdrop{background:#0009}.guidance-dialog-top{justify-content:space-between;align-items:center;gap:.75rem;font-size:.9em;display:flex}.guidance-dialog progress{width:100%;height:.45rem;accent-color:var(--accent);margin-top:1rem}.guidance-dialog h2{margin-block:1.3rem .65rem;line-height:1.25}.guidance-dialog h2:focus-visible{outline:2px solid var(--accent);outline-offset:.3rem}.guidance-dialog p{line-height:1.6}.guidance-navigation{flex-wrap:wrap;justify-content:space-between;gap:.65rem;margin-top:1.5rem;display:flex}.guidance-dialog button{white-space:normal;min-height:44px}.guidance-dialog .metadata{font-size:.9em}.guidance-dialog{overflow-wrap:anywhere}.guidance-dialog-top{flex-wrap:wrap}.guidance-dialog-top>span{min-width:0}.guidance-dialog progress,.guidance-dialog button{min-width:0;max-width:100%}.composer .guidance-tip{grid-column:1/-1;width:100%;margin:.25rem 0;padding:.5rem .65rem}.beta-max{overflow-wrap:anywhere;min-width:0}.beta-max p{line-height:1.5}.beta-max button,.beta-max summary{min-height:44px}.beta-max input{box-sizing:border-box;width:100%;min-width:0}.beta-max-actions{flex-wrap:wrap;gap:.5rem;margin:.75rem 0;display:flex}.beta-max-actions button{flex:9rem}.beta-max-account{flex-direction:column;align-items:start;width:100%;margin-top:.5rem;display:flex}.beta-max-selection{border:1px solid var(--border,#737789);border-radius:.75rem;margin-top:1rem;padding:.8rem}.beta-max-qr{background:#fff;border-radius:.5rem;width:min(100%,280px);height:auto;margin:1rem auto;display:block}.beta-max-copy{width:100%;margin:.75rem 0;display:block;min-height:52px!important}.beta-max-allowance{font-size:1.15rem;font-weight:700}.beta-max-claim{box-sizing:border-box;width:min(100%,34rem)}.beta-max-claim>a{padding:1rem 0;display:block}.join-request-alerts{z-index:46;background:var(--surface-raised);border-bottom:2px solid var(--accent);overflow-wrap:anywhere;max-height:30dvh;padding:.5rem max(1rem,50% - 30rem);position:sticky;top:0;overflow:auto}.join-request-alerts p{margin:0}.join-request-alerts ul{margin:0;padding:0;list-style:none}.join-request-alerts li{flex-wrap:wrap;align-items:center;gap:.25rem 1rem;display:flex}.join-request-alerts li span{flex:10rem}.join-request-alerts a{align-items:center;min-height:44px;text-decoration:underline;display:inline-flex}.join-request-alerts~main>header{top:var(--join-alert-height,0px)}.join-request-alerts~.map-workspace{top:var(--join-alert-height,0px);height:calc(var(--visible-height,100dvh) - var(--join-alert-height,0px))}.beta-overlay{z-index:90;height:var(--beta-visible-height,100dvh);padding:max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));bottom:auto}.beta-dialog{overscroll-behavior:contain;scrollbar-gutter:stable;width:min(680px,100%);max-width:680px;max-height:100%;padding:20px;scroll-padding-block:12px;overflow-y:auto}.beta-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.beta-heading h2{margin:0}.beta-dialog button,.beta-dialog input,.beta-dialog select,.beta-dialog textarea{max-width:100%;min-height:44px}.beta-dialog button{overflow-wrap:anywhere}.beta-dialog [hidden]{display:none}.beta-tabs{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.beta-form,.beta-admin-report form,.beta-filters{gap:12px;display:grid}.beta-form>label,.beta-admin-report form label,.beta-filters label,.beta-dialog details>form label{gap:6px;display:grid}.beta-dialog :is(textarea,select,input:not([type=radio]):not([type=checkbox])){background:var(--canvas);width:100%;color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:10px;font-size:max(16px,1rem)}.beta-form textarea{resize:vertical;min-height:96px}.beta-category{border:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:0;display:grid}.beta-category legend{margin-bottom:8px;padding:0;font-weight:700}.beta-category label{border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;align-items:center;gap:8px;min-width:0;padding:10px;display:flex}.beta-category label:has(input:checked){border-color:var(--accent);background:var(--surface-raised)}.beta-category input{flex:0 0 18px;width:18px;margin:0}.beta-category span{overflow-wrap:anywhere}.beta-small{font-size:.875rem;line-height:1.5}.beta-form p{margin:0}.beta-privacy{border-block:1px solid var(--border)}.beta-privacy p{margin:8px 0 12px}.beta-context{gap:8px;font-size:.9rem;display:grid}.beta-context>div{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;display:grid}.beta-context dt{color:var(--muted)}.beta-context dd{overflow-wrap:anywhere;margin:0}.beta-screenshot{margin:0}.beta-screenshot img,.beta-review-screenshot{object-fit:contain;border:1px solid var(--border);border-radius:8px;max-width:100%;max-height:280px;margin:10px 0;display:block}.beta-screenshot figcaption{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.beta-report{border:1px solid var(--border);border-radius:var(--radius);margin:14px 0;padding:12px}.beta-report-title{flex-wrap:wrap;justify-content:space-between;align-items:start;gap:8px;display:flex}.beta-status{border:1px solid var(--border);border-radius:8px;padding:2px 8px;font-size:.85rem}.beta-report-text{white-space:pre-wrap;overflow-wrap:anywhere}.beta-report code,.beta-receipt code{overflow-wrap:anywhere}.beta-admin-report>summary{padding:0}.beta-admin-report>summary small{color:var(--muted);overflow-wrap:anywhere;margin-top:6px;font-weight:400;display:block}.beta-admin-report form{margin-top:16px}.beta-news article{border-bottom:1px solid var(--border);padding:12px 0}.beta-news-hint{color:var(--muted);margin-inline-start:8px;font-size:.8em;font-weight:400}.beta-news-preference{align-items:center;gap:8px;min-height:44px;display:flex}.beta-news-preference input{flex:0 0 20px;width:20px;height:20px}.beta-news article h3,.beta-news article p{margin:6px 0}.beta-prompt,.beta-recognition{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);margin:16px 0;padding:16px}.beta-prompt h3,.beta-prompt p{margin:0 0 12px}.beta-prompt .actions{margin-bottom:0}.beta-recognition label{align-items:center;gap:8px;min-height:44px;display:flex}.beta-recognition input{width:20px;height:20px}.founding-playtester{color:var(--accent);font-size:.9rem}@media (width<=480px){.beta-dialog{padding:14px}.beta-category{grid-template-columns:minmax(0,1fr)}.beta-heading{gap:8px}.beta-tabs button{flex:auto}}@media (forced-colors:active){.beta-status{border:2px solid highlight}.beta-category label:has(input:checked){border:2px solid highlight}}.bubble>.chat-attachment{width:360px;max-width:100%;margin:.4rem 0;display:block}.attachment-preview{border:1px solid var(--border);background:var(--surface-raised);width:fit-content;min-width:44px;max-width:100%;color:var(--text);border-radius:8px;margin:0;padding:0;display:block;overflow:hidden}.attachment-frame{justify-content:center;align-items:center;max-width:100%;margin-inline:auto;display:flex;position:relative}.attachment-frame img{object-fit:contain;width:auto;max-width:100%;height:auto;max-height:100%;display:block;position:absolute}.attachment-placeholder{color:var(--muted);place-items:center;font-size:.875rem;display:grid;position:absolute;inset:0}.attachment-tap{padding:.6rem .8rem;display:block}.attachment-caption{flex-wrap:wrap;align-items:baseline;gap:.2rem .8rem;padding-top:.35rem;font-size:.85rem;line-height:1.4;display:flex}.attachment-caption>span{overflow-wrap:anywhere;flex:12rem;min-width:0}.attachment-caption a{align-items:center;min-height:44px;display:inline-flex}.chat-image-viewer{z-index:200;background:var(--canvas);color:var(--text);padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);overscroll-behavior:none;flex-direction:column;display:flex;position:fixed;inset:0}.chat-image-controls{flex-wrap:wrap;flex-shrink:0;gap:.4rem;padding:.6rem;display:flex}.chat-image-controls button{min-width:44px;min-height:44px;margin:0;padding:.45rem .7rem}.chat-image-title{overflow-wrap:anywhere;flex-shrink:0;max-height:4.5em;margin:0;padding:0 .75rem .5rem;font-size:.875rem;overflow-y:auto}.chat-image-error{color:var(--error);margin:0;padding:.5rem .75rem}.chat-image-stage{touch-action:none;-webkit-user-select:none;user-select:none;overscroll-behavior:none;flex:1;justify-content:center;align-items:center;min-height:0;display:flex;position:relative;overflow:hidden}.chat-image-stage img{object-fit:contain;transform-origin:50%;pointer-events:none;max-width:none;max-height:none;position:absolute}.chat-image-stage:focus-visible{outline:2px solid var(--focus);outline-offset:-3px}.launch-links{border-block:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:.7rem 1.1rem;margin:1rem 0;padding:.9rem 0;display:flex}.launch-links a{text-underline-offset:3px;align-items:center;min-height:44px;font-weight:650;text-decoration:underline;display:inline-flex}.launch-links .linux-download{border:1px solid var(--border);background:var(--surface-raised);border-radius:10px;padding:.5rem .8rem;text-decoration:none}.membership-page{max-width:960px;margin:auto;padding:0 1rem 3rem}.membership-page>header{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.membership-page>header h1{margin-right:auto}.membership-page>section{max-width:760px;margin:1.5rem auto}.membership-page .settings{margin:1rem 0}.membership-page [aria-label=Membership\ purchases]{border:1px solid var(--border);background:var(--surface-raised);border-radius:12px;margin:1rem 0;padding:1rem}.membership-page [aria-label=Membership\ purchases] label{max-width:100%}.membership-page button,.membership-page select{white-space:normal;max-width:100%}.contribution-button{background:var(--accent);max-width:100%;min-height:44px;color:var(--canvas);text-align:center;overflow-wrap:anywhere;border-radius:12px;justify-content:center;align-items:center;padding:10px 14px;font-weight:700;display:inline-flex}.map-chat-link{flex-direction:column;gap:8px;width:fit-content;max-width:100%;display:flex}.map-message-preview{max-width:100%;display:block}.map-message-preview:empty{width:1px;height:1px;display:block}.map-message-preview svg{background:#faf8ee;border-radius:8px;width:min(480px,100%);max-width:100%;height:auto;max-height:min(240px,35dvh);display:block}:root{color:var(--text);background:var(--canvas);font-synthesis:none;font-family:Inter,ui-sans-serif,system-ui,sans-serif}*{box-sizing:border-box}body{background:var(--canvas);margin:0}a{color:var(--accent);text-decoration:none}button,input,textarea,select{font:inherit}button,.upload{background:var(--accent);min-height:44px;color:var(--canvas);cursor:pointer;border:0;border-radius:12px;padding:10px 14px;font-weight:700}.ghost{width:100%;margin-top:10px}.small,.icon{min-height:40px;padding:8px 10px}button:disabled{opacity:.45}.auth,.center{place-items:center;min-height:100dvh;padding:20px;display:grid}.card{background:var(--surface);border-radius:18px;width:min(430px,100%);padding:24px}.card h1{margin-bottom:0;font-size:2rem}.card form{gap:12px;display:grid}.card input,textarea,.dice,select{background:var(--input-bg);border:1px solid var(--border);color:var(--text);border-radius:10px;padding:12px}.error{color:var(--error)}.notice{color:var(--warning);margin:6px 0}header{z-index:5;background:var(--navigation);border-bottom:1px solid var(--border);align-items:center;gap:14px;padding:12px 16px;display:flex;position:sticky;top:0}header h1{margin:0;font-size:1.05rem}.home{max-width:720px;margin:auto;padding:16px}.actions{gap:10px;margin-bottom:18px;display:flex}.campaign-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;justify-content:space-between;gap:12px;margin:10px 0;padding:16px;display:flex}.campaign-card span{color:var(--muted)}.turn-banner{z-index:4;background:var(--surface-raised);justify-content:space-between;align-items:center;padding:10px 16px;display:flex;position:sticky;top:50px}.tabs{border-bottom:1px solid var(--border);gap:20px;padding:10px 16px;display:flex}.feed{max-width:760px;margin:auto;padding:14px 14px 190px}.bubble{background:var(--surface);border:1px solid var(--border);border-radius:14px;margin:10px 0;padding:12px 14px}.bubble>div{justify-content:space-between;gap:10px;display:flex}.bubble time{color:var(--muted);font-size:.72rem}.bubble p{white-space:pre-wrap}.listen{min-height:34px;color:var(--accent);border:1px solid var(--border);background:0 0;padding:6px 9px}.composer{z-index:6;background:var(--navigation);border-top:1px solid var(--border);padding:10px max(10px,env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));position:fixed;bottom:0;left:0;right:0}.composer textarea{resize:none;width:min(760px,100%);height:70px;margin:auto;display:block}.toolrow{align-items:center;gap:7px;width:min(760px,100%);margin:8px auto 0;display:flex}.toolrow .dice{width:90px;padding:8px}.toolrow button:last-of-type{margin-left:auto}.maps{max-width:760px;margin:40px auto 220px;padding:16px}.upload input{display:none}.mapgrid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin-top:15px;display:grid}.mapgrid a{background:var(--surface);border-radius:12px;overflow:hidden}.mapgrid img{aspect-ratio:1;object-fit:cover;width:100%;display:block}.mapgrid span{padding:8px;display:block}.toast{background:var(--error-bg);z-index:10;border-radius:10px;padding:10px 14px;position:fixed;top:110px;left:50%;transform:translate(-50%)}@media (width>=900px){.app{padding-left:0}.composer{border:1px solid var(--border);border-radius:16px 16px 0 0;width:800px;left:50%;transform:translate(-50%)}.feed{padding-bottom:180px}}.toolrow{flex-wrap:wrap}.tabs{gap:8px;overflow-x:auto}.tabs button{white-space:nowrap;width:auto;margin:0}.yourturn{background:var(--success-bg);color:var(--success)}.turn-banner{flex-wrap:wrap;gap:10px}.turn-controls{flex-wrap:wrap;gap:8px;display:flex}.settings,.private-list{max-width:760px;margin:20px auto;padding:16px}.settings .actions{flex-wrap:wrap;margin-top:16px}.settings .upload{width:fit-content}.settings p{line-height:1.5}.private-list button{margin:5px}.private-list label{padding:10px;display:block}.image-button{color:var(--text);text-align:left;background:0 0;border-radius:8px;width:100%;padding:0;overflow:hidden}.image-button img{object-fit:contain;max-width:100%;max-height:420px;display:block}.image-button span{padding:12px;display:block}.viewer{z-index:50;background:var(--canvas);flex-direction:column;display:flex;position:fixed;inset:0}.viewer-controls{flex-wrap:wrap;gap:8px;padding:12px;display:flex}.image-pan{touch-action:pan-x pan-y pinch-zoom;flex:1;overflow:auto}.image-pan img{display:block}.empty{color:var(--muted);margin-top:40px}.error{padding:10px 16px}.bubble time{font-size:.8rem}.maps{margin-top:16px}.notice{padding:8px}.upload{display:inline-block}.settings input:not([type=checkbox]){max-width:100%}@media (width<=480px){.turn-controls select{max-width:180px}.composer .toolrow{gap:5px}.composer button,.composer .upload{padding:9px;font-size:.875rem}.toolrow .dice{width:74px}.campaign-card{flex-direction:column}header{flex-wrap:wrap}.feed{padding-bottom:260px}}button:focus-visible,a:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.campaign-card{display:block}.campaign-summary{justify-content:space-between;align-items:center;gap:12px;min-height:44px;display:flex}.invite-code{flex-wrap:wrap;align-items:flex-end;gap:10px;margin-top:12px;display:flex}.invite-code label{gap:6px;margin:0;display:grid}.invite-code input{background:var(--input-bg);color:var(--text);border:1px solid var(--border);letter-spacing:.06em;border-radius:10px;width:14ch;padding:10px;font-family:ui-monospace,monospace;font-size:1rem}.invite-code span{align-self:center}.invite-code button{min-height:44px}@media (width<=480px){.campaign-summary{flex-direction:column;justify-content:center;align-items:flex-start}}.people form{gap:12px;display:grid}.people label{gap:6px;display:grid}.people input,.people textarea,.people select{background:var(--input-bg);border:1px solid var(--border);width:100%;min-width:0;color:var(--text);border-radius:10px;padding:12px}.people .actions{margin-bottom:0}.people .bubble{overflow-wrap:anywhere}.people summary{cursor:pointer;min-height:44px;padding:12px 0}.character-link{color:var(--accent);background:0 0;min-height:44px;padding:4px 8px;text-decoration:underline}.character-description{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6}.profile-overlay{z-index:60;background:#000b;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.profile-card{background:var(--surface);border-radius:16px;width:100%;max-width:600px;max-height:90dvh;padding:24px;overflow:auto}.metadata{color:var(--muted)}.speaking-as{align-items:center;gap:12px;max-width:760px;margin:0 auto 8px;display:flex}.speaking-as select{max-width:70%;padding:6px}.composer:has(.speaking-as)~.maps{margin-bottom:280px}.composer{bottom:var(--keyboard-inset,0px);max-height:calc(var(--visible-height,100dvh) - 12px);overscroll-behavior:contain;overflow-y:auto}.message-row{align-items:stretch;gap:8px;width:min(760px,100%);margin:0 auto;display:flex}.composer .message-row textarea{flex:1;width:100%;min-width:0;margin:0;font-size:16px}.dictate-button{background:var(--surface-raised);min-height:70px;color:var(--text);flex-direction:column;flex:0 0 72px;justify-content:center;align-items:center;gap:4px;padding:8px;display:flex}.dictate-button span{font-size:.875rem}.dictate-button.listening{background:var(--error-bg);color:var(--text)}.composer .dice{font-size:16px}.feed{padding-bottom:var(--composer-space,300px)}.bubble p,.character-description,.text-preview,textarea,input:not([type=color]):not([type=range]):not([type=checkbox]){color:var(--reading-color)}.composer .message-row textarea,.composer .dice{font-size:1rem}.text-settings label{gap:8px;display:grid}.text-settings select{width:100%}.text-settings input[type=color]{width:80px;min-height:44px}.text-preview{background:var(--surface);border-radius:12px;padding:16px}.actions{flex-wrap:wrap}.profile-card,.people{overflow-wrap:anywhere}.unread{white-space:nowrap;margin-left:.3em;font-size:.75rem;line-height:1}.alternate-persona{color:var(--persona-color,#d8b4fe);overflow-wrap:anywhere}.read-marker{vertical-align:bottom;width:1px;height:1em;display:inline-block}.play-order li{border-bottom:1px solid var(--border);align-items:center;gap:.5rem;padding:.5rem;display:flex}.play-order li[draggable=true]{cursor:grab}.play-order li span{flex:1}.character-controls{flex-wrap:wrap;gap:1rem;display:flex}.character-controls label{align-items:center;gap:.5rem;display:flex}.character-controls input[type=checkbox],.people input[type=checkbox]{width:auto}.turn-order li{padding:8px 0}.turn-order li>span{min-width:120px;margin-right:12px;display:inline-block}.turn-order li>div{flex-wrap:wrap;gap:8px;display:inline-flex}.turn-order ol{padding-left:28px}.bubble .roll-details{opacity:.8;overflow-wrap:anywhere;margin-top:-4px;font-size:.9em}.gaming-config label,.gaming form label{margin:.6rem 0;display:block}.gaming-config fieldset{border:1px solid var(--border);border-radius:8px;margin:.8rem 0;padding:1rem}.gaming-rule-row{flex-wrap:wrap;align-items:end;gap:.5rem;display:flex}.gaming-preview{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;max-height:45vh;overflow:auto}.gaming details{margin:1rem 0}.gaming-personas{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:1rem;display:grid}.gaming-personas .campaign-card{padding:1rem;display:block}.gaming dl div{justify-content:space-between;gap:1rem;display:flex}.gaming dd{margin:0}.gaming input[type=checkbox],.gaming-config input[type=checkbox]{width:auto}.gaming pre{white-space:pre-wrap;overflow-wrap:anywhere}.dice-rattle{font-size:2rem;animation:.55s ease-out dice-rattle;display:inline-block}.drawing-tools{flex-wrap:wrap;gap:.5rem;display:flex}@keyframes dice-rattle{0%,to{transform:rotate(0)}20%,60%{transform:translate(-4px)rotate(-20deg)}40%,80%{transform:translate(4px)rotate(20deg)}}@media (prefers-reduced-motion:reduce){.dice-rattle{animation:none}}.help-page{max-width:850px;margin:auto}.manual-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6}.lifecycle-settings{border:1px solid var(--error)}.settings label{margin:.7rem 0;display:block}.speaking-as input{background:var(--input-bg);border:1px solid var(--border);border-radius:10px;flex:1;min-width:0;padding:6px}.speaking-as .metadata{white-space:nowrap;font-size:.75rem}.message-heading{flex-wrap:wrap}summary{cursor:pointer;min-height:44px;padding:12px 0}details.settings>summary{font-weight:700}.settings form{gap:10px;display:grid}.settings input:not([type=checkbox]):not([type=color]):not([type=range]){background:var(--input-bg);border:1px solid var(--border);border-radius:10px;width:100%;padding:10px}.bubble a{overflow-wrap:anywhere;text-decoration:underline}.message-tools summary{width:44px;min-height:34px;padding:4px 8px}.composer-tools[open]{position:relative}.composer-tools button{white-space:nowrap;background:var(--surface-raised);box-shadow:0 0 0 1px var(--border);position:absolute;bottom:44px;left:0}.supporter-badge{color:var(--muted);font-size:.75em}.image-button{background:var(--surface-raised);min-height:64px}.settings button{max-width:100%;margin:4px}.auth details{margin:8px 0}.auth label{gap:6px;display:grid}.bubble p{overflow-wrap:anywhere}.play-order{padding-left:0}.dice-tools{overflow-wrap:anywhere;max-width:760px;margin:6px auto}.dice-tools[open]{max-height:40dvh;overflow:auto}.dice-tools small{overflow-wrap:anywhere}.dice-tools pre{max-width:100%;overflow:auto}.composer>.error{max-height:22dvh;overflow:auto}.bubble details li{overflow-wrap:anywhere}.bubble input[type=checkbox]{vertical-align:middle;width:44px;height:44px}.bubble details select{max-width:100%}.bubble .message-content{white-space:pre-wrap;overflow-wrap:anywhere;display:block}.manual-text{white-space:normal;line-height:1.65}.manual-text pre{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--input-bg);border-radius:10px;padding:12px}.manual-text table{border-collapse:collapse;max-width:100%;display:block;overflow-x:auto}.manual-text th,.manual-text td{border:1px solid var(--border);text-align:left;vertical-align:top;padding:8px}.manual-text code{color:var(--warning);font-size:.9em}.help-page section{scroll-margin-top:80px}.composer-toggle{min-width:44px;min-height:44px;margin:0 0 8px auto;padding:8px;font-size:1.25rem;display:block}.composer.composer-compact{padding:8px;padding-bottom:max(8px,env(safe-area-inset-bottom));grid-template-columns:minmax(0,1fr) auto 44px;gap:8px;display:grid}.composer-compact>.speaking-as,.composer-compact>.dice-tools,.composer-compact .dictate-button,.composer-compact>.toolrow>:not(.send-message){display:none}.composer-compact>.message-row,.composer-compact>.toolrow{display:contents}.composer-compact .message-row textarea{resize:vertical;grid-area:1/1;height:44px;min-height:44px;max-height:120px;padding:10px}.composer-compact .send-message{grid-area:1/2;min-height:44px;margin:0;padding:8px 12px}.composer-compact>.composer-toggle{grid-area:1/3;margin:0}.composer-compact>.notice,.composer-compact>.profile-overlay{grid-column:1/-1}.quick-dice-toggle{display:none}.composer-expanded .quick-dice-panel{flex-wrap:wrap;flex:1;align-items:center;gap:8px;display:flex}.composer-expanded .quick-dice-panel .dice-tools{order:-1;width:100%}.composer.composer-compact{grid-template-columns:minmax(0,1fr) auto 44px 44px;overflow:visible}.composer-compact .quick-dice-toggle{grid-area:1/3;min-width:44px;min-height:44px;margin:0;padding:8px;display:block}.composer-compact>.toolrow>.quick-dice-panel{display:none}.composer-compact.dice-open{grid-template-columns:minmax(0,1fr) auto 44px 92px 44px 44px}.composer-compact.dice-open>.toolrow>.quick-dice-panel{display:contents}.composer-compact .quick-dice-panel .dice-tools{display:none}.composer-compact.dice-open .quick-dice-panel .dice{grid-area:1/4;width:92px;min-width:0;height:44px;margin:0;padding:8px;font-size:16px}.composer-compact.dice-open .quick-dice-panel>button{grid-area:1/5;min-width:44px;height:44px;margin:0;padding:6px;font-size:.875rem}@media (width<=480px){.composer.composer-compact{gap:4px}.composer-compact.dice-open{grid-template-columns:minmax(64px,1fr) 44px 92px 44px 44px}.composer-compact.dice-open>.toolrow>.send-message{display:none}.composer-compact.dice-open .quick-dice-toggle{grid-column:2}.composer-compact.dice-open .quick-dice-panel .dice{grid-column:3}.composer-compact.dice-open .quick-dice-panel>button{grid-column:4}.composer-compact.dice-open>.composer-toggle{grid-column:5}}.roll-options>summary{text-align:center;background:var(--surface-raised);border-radius:8px;width:44px;min-height:44px;padding:8px;font-size:1.25rem;list-style:none}.roll-options>summary::-webkit-details-marker{display:none}.message-tools>summary{list-style:none}.message-tools>summary::-webkit-details-marker{display:none}.roll-options ul{padding-left:20px}.roll-bubble,.private-roll-bubble{position:relative}.roll-bubble>.message-heading{padding-right:48px}.roll-bubble>.message-tools>summary,.private-roll-bubble>.roll-options>summary{text-align:center;width:44px;min-height:44px;margin:0;padding:8px;position:absolute;top:8px;right:12px}.private-roll-bubble>p:first-child{padding-right:48px}.composer.composer-expanded{padding:12px;padding-bottom:max(12px,env(safe-area-inset-bottom));grid-template-columns:minmax(0,1fr) 44px;gap:12px;display:grid}.composer-expanded>.composer-toggle{grid-area:1/2;align-self:start;margin:0}.composer-expanded>.speaking-as{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;width:100%;min-width:0;max-width:none;margin:0;font-size:.875rem;display:grid}.composer-expanded>.speaking-as:first-of-type{grid-area:1/1}.composer-expanded>.speaking-as:not(:first-of-type){grid-column:1/-1}.composer-expanded>.speaking-as input,.composer-expanded>.speaking-as select{background:var(--input-bg);width:100%;min-width:0;max-width:none;height:44px;color:var(--reading-color);border:1px solid var(--border);border-radius:10px;padding:8px;font-size:16px}.composer-expanded>.message-row{grid-column:1/-1;gap:8px;width:100%;margin:0}.composer-expanded .message-row textarea{resize:vertical;height:96px;min-height:80px;max-height:180px;padding:12px}.composer-expanded .dictate-button{flex-basis:64px;min-height:80px}.composer-expanded>.toolrow{grid-column:1/-1;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:8px;width:100%;margin:0;display:grid}.composer-expanded .toolrow>.composer-tools{min-width:0}.composer-expanded .composer-tools>summary{background:var(--surface-raised);white-space:nowrap;border-radius:10px;min-height:44px;padding:10px 12px}.composer-expanded .toolrow>.upload{white-space:nowrap;text-align:center;min-height:44px;margin:0;padding:10px 12px}.composer-expanded .quick-dice-panel{flex-wrap:nowrap;justify-content:flex-end;gap:8px;min-width:0;display:flex}.composer-expanded .quick-dice-panel .dice{width:92px;min-width:0;height:44px;margin:0;padding:8px}.composer-expanded .quick-dice-panel>button,.composer-expanded .send-message{white-space:nowrap;min-height:44px;margin:0;padding:10px 12px}.composer-expanded>.dice-tools{border-top:1px solid var(--border);grid-column:1/-1;width:100%;max-width:none;margin:0;padding-top:4px;font-size:.875rem}.composer-expanded>.notice,.composer-expanded>.profile-overlay{grid-column:1/-1}@media (width<=480px){.composer.composer-expanded{padding:8px;padding-bottom:max(8px,env(safe-area-inset-bottom));gap:8px}.composer-expanded>.speaking-as{grid-template-columns:minmax(0,1fr) auto;gap:4px}.composer-expanded>.speaking-as input,.composer-expanded>.speaking-as select{grid-area:2/1/auto/-1}.composer-expanded>.speaking-as .metadata{grid-area:1/2}.composer-expanded .dictate-button{flex-basis:56px}.composer-expanded>.toolrow{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}.composer-expanded .toolrow>.composer-tools{grid-area:1/1}.composer-expanded .toolrow>.upload{grid-area:1/2/auto/-1}.composer-expanded .quick-dice-panel{grid-area:2/1/auto/3;justify-content:flex-start}.composer-expanded .send-message{grid-area:2/3}}.catch-up{overflow-wrap:anywhere;max-width:850px;margin:0 auto;padding:16px}.recap-events{padding-inline-start:24px}.recap-events li{border-bottom:1px solid var(--border);padding:12px 0}.recap-original{white-space:pre-wrap}.campaign-card .actions{flex-wrap:wrap;gap:16px}.campaign-card .campaign-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:12px;display:grid}.campaign-shortcuts a{align-items:center;min-height:44px;padding:8px 0;display:flex}.campaign-developments{overflow-wrap:anywhere}.speech-controls [role=status]{overflow-wrap:anywhere;flex-basis:100%}.settings select{max-width:100%}.campaign-context{background:var(--surface);border:1px solid var(--border);overflow-wrap:anywhere;border-radius:12px;max-width:960px;margin:12px auto;padding:12px 16px}.campaign-context p{margin:8px 0;line-height:1.6}.campaign-context details{margin-top:12px}.campaign-context summary{cursor:pointer;min-height:44px;padding:10px 0}.campaign-context label{gap:6px;margin:12px 0;display:grid}.campaign-context textarea,.campaign-context select{background:var(--input-bg);width:100%;color:var(--reading-color);border:1px solid var(--border);border-radius:10px;min-height:44px;padding:12px}.context-controls{flex-wrap:wrap;gap:8px;display:flex}.campaign-context li{margin:12px 0;line-height:1.6}.campaign-context li button{margin-left:8px}.recap-events li{scroll-margin-top:60px}.original-event{border:1px solid var(--border);padding:12px}input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.bubble p,.character-description,.text-preview,.recap-events p{line-height:var(--reading-line-height,1.6)}.speech-controls{flex-wrap:wrap;gap:8px;margin:8px 0;display:flex}.listen,.small,.icon{min-height:44px}.composer.composer-compact{grid-template-columns:minmax(0,1fr) 44px auto 44px 44px}.composer-compact .dictate-button{flex-basis:44px;grid-area:1/2;min-width:44px;min-height:44px;padding:6px;display:flex}.composer-compact .dictate-button span{display:none}.composer-compact .send-message{grid-column:3}.composer-compact .quick-dice-toggle{grid-column:4}.composer-compact>.composer-toggle{grid-column:5}.composer-compact.dice-open .dictate-button{display:none}.composer-compact.dice-open .send-message{grid-column:2}.composer-compact.dice-open .quick-dice-toggle{grid-column:3}.composer-compact.dice-open>.composer-toggle{grid-column:6}@media (width<=480px){.composer-compact.dice-open .quick-dice-toggle{grid-column:2}.composer-compact.dice-open>.composer-toggle{grid-column:5}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.app>.turn-banner{position:static}.linked-message{outline-offset:3px;outline:3px solid;scroll-margin-block:4rem}.notification-offer{border:1px solid var(--border,#777);border-radius:.6rem;margin:.5rem 0;padding:.65rem}.notification-offer p{margin:0 0 .5rem}.notification-offer button{margin:.2rem .4rem .2rem 0}.notification-control{border-bottom:1px solid var(--border,#777);padding-block:.65rem}.notification-control select{width:100%;max-width:100%}.notification-control label{margin-block:.4rem;display:block}.invitation-formats{width:100%;min-width:0;margin-block:.6rem}.invitation-format{flex-wrap:wrap;align-items:end;gap:.5rem;min-width:0;margin-block:.4rem;display:flex}.invitation-format label{flex:14rem;min-width:0;margin:0}.invitation-format input,.invitation-format textarea{box-sizing:border-box;text-overflow:ellipsis;width:100%;min-width:0;font-family:monospace}.invitation-format button{flex:none;margin:0}.invitation-formats [role=status]{font-size:.875rem;display:block}.invitation-format textarea{resize:none;overflow-wrap:anywhere;word-break:break-all;line-height:1.35}.invitation-format input,.invitation-format textarea{background:var(--input-bg);min-height:44px;color:var(--text);border:1px solid var(--border);border-radius:10px;padding:10px 12px;display:block}.bubble>.invitation-formats{display:block}.remembered-account{flex-wrap:wrap;align-items:center;gap:.6rem;margin-block:1rem;display:flex}.remembered-account button{white-space:normal;overflow-wrap:anywhere;max-width:100%}.remembered-account .metadata{flex-basis:100%}.account-avatar{border:1px solid;border-radius:50%;flex-shrink:0;place-items:center;width:2.5rem;height:2.5rem;display:inline-grid}:root{--canvas:#0f1f38;--surface:#153045;--surface-raised:#1c4255;--border:#526779;--text:#f7f0e0;--muted:#b6bece;--accent:#e8b95f;--accent-ink:#0f1f38;--focus:#e8b95f;--radius:12px;--space:8px;--content:960px;color:var(--text);background:var(--canvas);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;line-height:1.5}body{background:var(--canvas)}h1,h2,h3{letter-spacing:-.02em;line-height:1.25}h2{font-size:1.35rem}h3{font-size:1.1rem}a{color:var(--accent)}a:hover{text-decoration:underline}button,.upload{border-radius:var(--radius);background:var(--accent);color:var(--accent-ink);min-height:44px}button{transition:background-color .15s,box-shadow .15s}button:not(:disabled):hover,.upload:hover{box-shadow:inset 0 0 0 2px var(--accent)}button:disabled{cursor:not-allowed;opacity:.6}.secondary,.ghost,.small,.icon{background:var(--surface-raised);color:var(--text)}.chosen{background:var(--accent);color:var(--accent-ink)}input,textarea,select{min-width:0;max-width:100%}.metadata,.empty,.campaign-card span{color:var(--muted)}header{gap:12px;padding:12px 16px}.app>header{padding-inline:max(16px, calc((100vw - var(--content)) / 2))}main:has(>.home)>header{padding-inline:max(16px, calc((100vw - var(--content)) / 2))}header h1{overflow-wrap:anywhere;flex:1;min-width:0}header button{margin-left:0}.home{max-width:var(--content);padding:24px 16px}.home>h2{margin:0 0 8px}.home>.metadata{margin:0 0 24px}.auth .card{border:1px solid var(--border);padding:28px;box-shadow:0 16px 48px #0004}.auth .card h1{letter-spacing:-.04em;margin:0 0 12px}.auth-intro{margin:0 0 8px;font-size:1.125rem}.auth .metadata{margin:0 0 24px}.auth form{margin:16px 0}.auth label{font-weight:600}.auth input{width:100%;min-height:48px;font-weight:400}.auth .ghost{border:1px solid var(--border)}.auth details{border-top:1px solid var(--border)}.empty-state{border:1px dashed var(--border);color:var(--muted);border-radius:16px;margin:20px 0;padding:24px}.empty-state h2,.empty-state h3{color:var(--text);margin:0 0 12px}.empty-state p{margin:0}.campaign-card{border-color:var(--border);padding:20px}.campaign-summary strong{color:var(--text);font-size:1.125rem}.campaign-shortcuts a{background:var(--surface-raised);border-radius:10px;padding:8px 12px}.tabs{padding:12px max(16px, calc((100vw - var(--content)) / 2));background:var(--canvas);flex-wrap:wrap;gap:6px;overflow:visible}.tabs button{padding:10px 12px;font-size:.875rem}.tabs .ghost{border:1px solid var(--border);background:0 0}.turn-banner{padding:12px max(16px, calc((100vw - var(--content)) / 2));border-bottom:1px solid var(--border)}.turn-controls select{min-width:0;max-width:100%}.campaign-context{width:calc(100% - 32px);margin:16px auto}.settings,.private-list,.catch-up,.people{width:100%;max-width:var(--content)}.settings{border-radius:var(--radius)}.settings>h2{margin-top:0}.gm-roll-cue-settings{border-bottom:1px solid var(--border);margin-bottom:16px;padding-bottom:12px}.settings details,.settings fieldset{border-color:var(--border)}.feed{max-width:800px}.bubble{border-color:var(--border)}.bubble time{color:var(--muted)}.roll-bubble{border-inline-start:3px solid var(--accent)}.error{border-inline-start:3px solid var(--error)}.profile-card{border:1px solid var(--border);box-shadow:0 20px 60px #0006}summary{border-radius:8px}summary:hover{background:var(--surface-raised)}@media (width<=600px){header,.app>header{gap:8px;padding:12px;position:static}main:has(>.home)>header{gap:8px;padding:12px;position:static}header h1{flex-basis:calc(100% - 130px)}header>a,header button{font-size:.875rem}.tabs{grid-template-columns:repeat(3,minmax(0,1fr));padding:8px;display:grid}.tabs button{white-space:normal;overflow-wrap:anywhere;padding:8px 4px;font-size:.8125rem;line-height:1.3}.turn-banner{padding:12px}.turn-controls{width:100%}.turn-controls select{flex:calc(50% - 4px);width:calc(50% - 4px);max-width:none}.campaign-context{width:calc(100% - 24px);margin:12px}.auth{padding:16px}.auth .card{padding:20px}.empty-state{padding:16px}}@media (forced-colors:active){button,.upload,.bubble,.campaign-card,.tabs .ghost{border:1px solid buttontext}.chosen{outline:2px solid highlight}}@media (prefers-reduced-motion:reduce){button{transition:none}}.interface-choice{border:0;min-width:0;margin:0;padding:0}.interface-choice legend{margin-bottom:12px;font-size:1.2rem;font-weight:700}.interface-choice label{cursor:pointer;border-radius:12px;align-items:center;gap:12px;min-height:64px;padding:8px;display:flex}.interface-choice label:has(input:checked){background:var(--surface-raised)}.settings .interface-choice input[type=radio]{flex:0 0 24px;width:24px;height:24px;padding:0}.interface-choice small{margin-top:4px;display:block}.quick-nav{border-bottom:1px solid var(--border);background:var(--surface,#161923);align-items:center;gap:12px;padding:12px 0;display:flex}.quick-nav button{flex:1;min-height:48px}.quick-nav sup{margin-left:6px}.quick-context,.chat-switcher{border:1px solid var(--border);border-radius:16px;margin:12px 0;padding:12px 16px}.chat-switcher button{margin:4px}.quick-character textarea{width:100%;max-width:100%;font:inherit}.campaign-picker{align-items:center;gap:8px;max-width:100%;display:flex}.campaign-picker select{min-width:0;max-width:100%;min-height:44px}.quick-play .turn-banner{margin-top:12px}.quick-play .composer{bottom:var(--keyboard-inset,0px)}.quick-play .composer.composer-compact,.quick-play .composer.composer-compact.dice-open{grid-template-columns:minmax(0,1fr) 44px auto auto 44px}.quick-play .composer-compact.dice-open .dictate-button{grid-column:2;display:flex}.quick-play .composer-compact.dice-open .send-message{grid-column:3;display:block}.quick-play .composer-compact.dice-open .quick-dice-toggle{grid-column:4}.quick-play .composer-compact.dice-open>.composer-toggle{grid-column:5}.quick-play .composer-compact.dice-open>.toolrow>.quick-dice-panel{grid-area:2/1/auto/-1;display:block}.quick-play .standard-dice{flex-wrap:wrap;gap:8px;display:flex}.quick-play .standard-dice button{min-width:44px;min-height:44px;margin:0}.quick-play .composer-expanded .quick-dice-toggle{grid-area:1/1;justify-self:start;display:block}.quick-play .composer-expanded>.speaking-as{grid-area:2/1/auto/-1}.quick-play .composer-expanded>.toolrow{flex-wrap:wrap;display:flex}.quick-play .composer-expanded .quick-dice-panel{flex:1 0 100%;order:2}.quick-play .composer-expanded .send-message{margin-left:auto}@media (width<=600px){.quick-play{padding-bottom:calc(84px + var(--composer-space,0px))}.quick-nav{z-index:15;padding:6px 8px max(6px, env(safe-area-inset-bottom));border-top:1px solid var(--border);border-bottom:0;gap:4px;position:fixed;bottom:0;left:0;right:0}.quick-play .composer{bottom:calc(var(--keyboard-inset,0px) + 64px + env(safe-area-inset-bottom));max-height:calc(var(--visible-height,100dvh) - 84px);overflow-y:auto}.quick-play header{flex-wrap:wrap}.quick-play header h1{flex:1;min-width:0}.campaign-picker{width:100%}.quick-play .quick-dice-toggle span{display:none}.quick-play .composer-compact .message-row textarea{font-size:max(16px, var(--reading-size,16px))}}.quick-play .quick-context{border:0;margin:4px 0;padding:8px 12px}.quick-context p{margin:6px 0}.quick-context .actions{align-items:center}.quick-options{position:relative}.quick-options[open]{flex-basis:100%}.quick-options summary{min-height:44px}.quick-options button{margin:4px}.quick-play .composer-expanded:not(.dice-open) .quick-dice-panel{display:none}@media (width<=600px){.quick-play header{grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:12px 16px;display:grid}.quick-play header h1{grid-area:1/1/auto/-1;margin:0;font-size:1.3rem}.quick-play header>a{grid-area:2/1}.quick-play header>button{grid-area:2/2}.quick-play header .campaign-picker{grid-column:1/-1}}.quick-nav button{overflow-wrap:anywhere;min-width:0}@media (width<=600px){.quick-play{padding-bottom:calc(var(--quick-nav-height,64px) + var(--composer-space,0px) + 20px)}.quick-play .composer{bottom:calc(var(--keyboard-inset,0px) + var(--quick-nav-height,64px));max-height:calc(var(--visible-height,100dvh) - var(--quick-nav-height,64px) - 12px)}.quick-play .composer-compact .message-row textarea{font-size:1rem}.quick-nav{flex-wrap:wrap}.quick-nav button{overflow-wrap:normal;flex:auto;min-width:min-content;padding:8px}.quick-nav button sup{white-space:nowrap}.quick-nav button{flex:1;width:auto}}.quick-nav button{margin:0}.adaptive-app .composer.composer-compact{grid-template-columns:minmax(64px,1fr) 44px auto 44px 44px;overflow-y:auto}.composer>.quick-roll{display:contents}.composer>.quick-roll[hidden]{display:none}.adaptive-app .composer-compact .message-row textarea{grid-area:1/1}.adaptive-app .composer-compact .dictate-button{grid-area:1/2}.adaptive-app .composer-compact .send-message{grid-area:1/3}.adaptive-app .composer-compact .quick-dice-toggle{grid-area:1/4;min-width:44px;min-height:44px;margin:0;display:block}.adaptive-app .composer-compact>.composer-toggle{grid-area:1/5}.adaptive-app .composer.composer-compact.dice-open{grid-template-columns:minmax(64px,1fr) auto 44px auto 44px 44px}.adaptive-app .composer-compact.dice-open .dictate-button{grid-column:3}.adaptive-app .composer-compact.dice-open .send-message{grid-column:4}.adaptive-app .composer-compact.dice-open .quick-dice-toggle{grid-column:5}.adaptive-app .composer-compact.dice-open>.composer-toggle{grid-column:6}.quick-dice-expression{border:1px solid var(--border);background:var(--input-bg);min-width:64px;max-width:min(280px,100vw - 310px);height:44px;min-height:44px;color:var(--reading-color);border-radius:10px;grid-area:1/2;margin:0;padding:8px 10px;font-size:16px}.quick-dice-buttons{scrollbar-width:none;touch-action:pan-x;overscroll-behavior-x:contain;grid-area:2/1/auto/-1;gap:4px;min-width:0;height:44px;display:flex;overflow:auto hidden}.quick-dice-buttons::-webkit-scrollbar{display:none}.quick-dice-buttons button{border-radius:10px;flex:0 0 44px;min-width:44px;height:44px;min-height:44px;margin:0;padding:4px;font-size:.875rem}.adaptive-app .composer.composer-expanded{grid-template-columns:minmax(64px,1fr) 44px 44px}.adaptive-app .composer.composer-expanded.dice-open{grid-template-columns:minmax(64px,1fr) auto 44px 44px}.adaptive-app .composer-expanded .quick-dice-toggle{grid-area:1/2;display:block}.adaptive-app .composer-expanded.dice-open .quick-dice-toggle{grid-column:3}.adaptive-app .composer-expanded.dice-open>.composer-toggle{grid-column:4}.adaptive-app .composer-expanded>.composer-toggle{grid-area:1/3}.adaptive-app .composer-expanded>.message-row{grid-area:1/1}.adaptive-app .composer-expanded .quick-dice-expression{grid-area:1/2;align-self:start}.adaptive-app .composer-expanded>.speaking-as{grid-area:3/1/auto/-1}.adaptive-app .composer-expanded>.toolrow{grid-area:4/1/auto/-1}.adaptive-app .composer-expanded .send-message{grid-column:3}.dice-feedback{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=480px){.adaptive-app .composer.composer-compact{gap:4px}.quick-dice-expression{max-width:min(280px,100vw - 252px)}.adaptive-app .composer.composer-compact.dice-open{grid-template-columns:minmax(64px,1fr) auto auto 44px 44px}.adaptive-app .composer.composer-compact.dice-open .dictate-button{display:none}.adaptive-app .composer-compact.dice-open .send-message{grid-column:3;display:block}.adaptive-app .composer-compact.dice-open .quick-dice-toggle{grid-column:4}.adaptive-app .composer-compact.dice-open>.composer-toggle{grid-column:5}}.composer>.quick-roll select,.composer>.quick-roll input[aria-label=Roll\ description]{min-width:0;max-width:100%;min-height:44px;font-size:1rem}.composer>.quick-roll input[aria-label=Roll\ description]{width:12rem}.quick-roll select:focus-visible,.quick-roll input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.dice-options{flex-wrap:wrap;grid-area:3/1/auto/-1;gap:6px;min-width:0;display:flex}.dice-options input{flex:100px}.dice-options select{flex:0 auto}.dice-options button{min-width:44px}.composer .dice-feedback:not(:empty){clip-path:none;white-space:normal;overflow-wrap:anywhere;grid-area:4/1/auto/-1;width:auto;height:auto;margin:0;font-size:.85rem;position:static}.adaptive-app .composer-expanded>.speaking-as{grid-row:5}.adaptive-app .composer-expanded>.toolrow{grid-row:6}.full-play .composer-expanded .quick-dice-toggle{align-self:start;display:block}.adaptive-app .composer.composer-expanded{gap:8px;display:grid}.adaptive-app .composer-expanded>.speaking-as,.adaptive-app .composer-expanded>.toolrow{grid-area:auto/1/auto/-1}.dice-options input{border:1px solid var(--border);background:var(--input-bg);color:var(--reading-color);border-radius:10px;padding:8px 10px}.adaptive-app .composer .quick-dice-toggle{min-width:44px;min-height:44px}.adaptive-app .quick-roll>.dice-tools{grid-area:5/1/auto/-1;min-width:0;max-width:100%}.quick-roll>.dice-tools>summary{align-items:center;min-height:44px;font-size:.875rem;display:flex}.quick-roll>.dice-tools pre{white-space:pre-wrap;overflow-wrap:anywhere}:root{--brand-navy:#0f1f38;--brand-gold:#e8b95f;--brand-cream:#f7f0e0;--brand-teal:#1c4255}.brand{color:var(--brand-gold);vertical-align:middle;align-items:center;gap:.55em;line-height:1.2;display:inline-flex}.brand-name{white-space:nowrap;text-transform:none;letter-spacing:.015em;font-weight:750}.brand-mark{flex:none;width:1.35em;height:1.35em;display:block}:root[data-theme=daylight] .brand,:root[data-theme=parchment] .brand{color:var(--brand-navy)}:root[data-theme=daylight] .brand-mark,:root[data-theme=parchment] .brand-mark{content:url(/brand/mark-navy.svg)}.brand-compact .brand-name{text-transform:none;display:none}.campaign-brand{flex:none;display:inline-flex}.auth .card{width:min(480px,100%)}.auth .auth-intro{letter-spacing:-.025em;max-width:14em;margin:20px 0 12px;font-size:clamp(1.5rem,5vw,2rem);font-weight:750;line-height:1.2}.auth .auth-secondary{margin:0 0 8px;font-size:1.125rem;font-weight:650;line-height:1.4}.auth .auth-description{margin:0 0 16px;font-size:1.0625rem;line-height:1.5}.auth{background:radial-gradient(ellipse at 100% 0%, #1c425533, transparent 65%), var(--canvas)}@media (width<=480px){.campaign-brand .brand-mark{width:24px;height:24px}}.auth label:has(input[type=checkbox]){font-weight:400;display:block}.auth input[type=checkbox]{vertical-align:middle;width:20px;height:20px;min-height:20px;accent-color:var(--accent);flex:none;margin:2px 8px 2px 0}.auth .ghost+.metadata{margin:20px 0 16px}.adaptive-app{--workspace-max:112rem;--panel-gap:1rem;--support-width:19rem;min-width:0;padding-bottom:0}.adaptive-app[data-effective-layout=compact]{--workspace-max:52rem}.adaptive-app[data-effective-layout=balanced]{--workspace-max:86rem}.adaptive-app>header{padding-inline:max(1rem, calc((100% - var(--workspace-max)) / 2));z-index:18;flex-wrap:wrap}.adaptive-app>.tabs,.adaptive-app>.quick-nav{max-width:var(--workspace-max);margin-inline:auto}.adaptive-app .tabs{flex-wrap:wrap;gap:.4rem;padding:.75rem 1rem;overflow:visible}.adaptive-app .tabs button{white-space:normal}.adaptive-workspace{gap:var(--panel-gap);max-width:var(--workspace-max);padding:1rem max(.75rem, env(safe-area-inset-right)) calc(var(--composer-space,0px) + 1rem) max(.75rem, env(safe-area-inset-left));grid-template-columns:minmax(0,1fr);align-items:start;margin:auto;display:grid}.workspace-primary,.workspace-controls,.workspace-context{overflow-wrap:anywhere;min-width:0}.workspace-primary{grid-column:1}.workspace-controls:empty,.workspace-context:empty{display:none}.adaptive-app .workspace-controls .turn-banner{border-radius:var(--radius);margin:0 0 .5rem;padding:.75rem;position:static}.adaptive-app .workspace-controls .turn-controls{width:100%}.adaptive-app .workspace-controls select{flex:10rem;max-width:100%}.adaptive-app .workspace-controls>*,.adaptive-app .workspace-context>*{width:100%;max-width:none;margin:0 0 .75rem}.adaptive-app .campaign-context{padding:.75rem}.workspace-panel-heading{justify-content:space-between;align-items:center;gap:.75rem;width:100%;max-width:48rem;margin:0 auto .5rem;display:flex}.workspace-panel-heading h2{margin:0;font-size:1.1rem}.panel-focus{flex-shrink:0;padding:.5rem .75rem;font-size:.875rem}.adaptive-app .workspace-primary>.settings,.adaptive-app .workspace-primary>.private-list,.adaptive-app .workspace-primary>.chat-switcher,.adaptive-app .workspace-primary>.catch-up{width:100%;max-width:none;margin:1rem 0}.adaptive-app .feed{width:100%;max-width:48rem;padding:.25rem 0 1rem}.adaptive-app .composer{left:calc(var(--composer-left,0px) + (var(--composer-width,100%) - min(var(--composer-width,100%), 50rem)) / 2);width:min(var(--composer-width,100%), 50rem);border:1px solid var(--border);border-radius:var(--radius) var(--radius) 0 0;max-width:none;right:auto;transform:none}.adaptive-app:not(.quick-play) .composer.composer-compact.dice-open{grid-template-columns:minmax(64px,1fr) auto 44px auto 44px 44px}@media (width<=480px){.adaptive-app:not(.quick-play) .composer.composer-compact.dice-open{grid-template-columns:minmax(64px,1fr) auto auto 44px 44px}}.workspace-support{grid-area:2/1}.workspace-primary{grid-row:1}.adaptive-app[data-effective-layout=compact] .workspace-support:not([data-open=true]){display:none}.adaptive-app[data-effective-layout=compact] .workspace-support[data-open=true]{grid-row:1}.adaptive-app[data-effective-layout=compact]:has(.workspace-support[data-open=true]) .workspace-primary{grid-row:2}.support-toggle{font-size:.875rem}.compact-turn-status{background:var(--surface);border-radius:var(--radius);padding:.5rem .75rem;font-size:.875rem}@media (width>=60rem){.adaptive-app:is([data-effective-layout=balanced],[data-effective-layout=expanded]) .adaptive-workspace{grid-template-columns:minmax(0, 1fr) minmax(16rem, var(--support-width))}.adaptive-app:is([data-effective-layout=balanced],[data-effective-layout=expanded]) .workspace-primary{grid-area:1/1}.adaptive-app:is([data-effective-layout=balanced],[data-effective-layout=expanded]) .workspace-support{grid-area:1/2}.adaptive-app:is([data-effective-layout=balanced],[data-effective-layout=expanded]) .support-toggle{display:none}}@media (width>=88rem){.adaptive-app[data-effective-layout=expanded]:where([data-layout-space=expanded]) .adaptive-workspace{grid-template-columns:minmax(16rem, var(--support-width)) minmax(0, 1fr) minmax(16rem, var(--support-width))}.adaptive-app[data-effective-layout=expanded]:where([data-layout-space=expanded]) .workspace-support{display:contents}.adaptive-app[data-effective-layout=expanded]:where([data-layout-space=expanded]) .workspace-controls{grid-area:1/1}.adaptive-app[data-effective-layout=expanded]:where([data-layout-space=expanded]) .workspace-primary{grid-area:1/2}.adaptive-app[data-effective-layout=expanded]:where([data-layout-space=expanded]) .workspace-context{grid-area:1/3}}.adaptive-app[data-layout-space=compact] .adaptive-workspace{grid-template-columns:minmax(0,1fr)}.adaptive-app[data-layout-space=compact] .workspace-support{grid-area:2/1;display:block}.adaptive-app[data-layout-space=compact] .workspace-primary{grid-area:1/1}.adaptive-app[data-layout-space=compact] .workspace-support:not([data-open=true]){display:none}.adaptive-app[data-layout-space=compact] .workspace-support[data-open=true]{grid-row:1}.adaptive-app[data-layout-space=compact]:has(.workspace-support[data-open=true]) .workspace-primary{grid-row:2}.adaptive-app[data-layout-space=compact] .support-toggle{display:inline-block}.adaptive-app:has(.workspace-controls:empty):has(.workspace-context:empty) .adaptive-workspace{max-width:min(var(--workspace-max), 70rem);grid-template-columns:minmax(0,1fr)}.adaptive-app:has(.workspace-controls:empty):has(.workspace-context:empty) .workspace-primary{grid-area:1/1}.adaptive-app:has(.workspace-controls:empty):has(.workspace-context:empty) :is(.workspace-support,.support-toggle){display:none}.adaptive-app[data-focus-panel]{--workspace-max:70rem}.adaptive-app[data-focus-panel] .adaptive-workspace{grid-template-columns:minmax(0,1fr)}.adaptive-app[data-focus-panel] .workspace-primary{grid-area:1/1}.adaptive-app[data-focus-panel]:has(.workspace-support[data-open=true]) .workspace-primary{grid-area:1/1}.adaptive-app[data-focus-panel] :is(.workspace-support,.workspace-controls,.workspace-context){display:none}.adaptive-app[data-focus-panel] .feed{max-width:58rem}.gameplay-options{margin-left:auto;position:relative}.gameplay-options>summary{border:1px solid var(--border);border-radius:var(--radius);text-align:center;width:44px;min-height:44px;padding:4px;font-size:1.4rem;list-style:none}.gameplay-options>summary::-webkit-details-marker{display:none}.gameplay-options-list{z-index:25;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);gap:.5rem;width:min(18rem,100vw - 2rem);max-height:calc(100dvh - 8rem);padding:.75rem;display:grid;position:absolute;top:100%;right:0;overflow-y:auto;box-shadow:0 8px 30px #0007}.gameplay-options-list button{text-align:left;width:100%;margin:0}.layout-choice{border:0;min-width:0;margin:0;padding:0}.layout-choice legend{padding:0 0 .75rem;font-size:1.25rem;font-weight:700}.layout-choice label,.map-dialog .layout-choice label{border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;align-items:center;gap:.75rem;min-height:60px;margin:.5rem 0;padding:.75rem;display:flex}.layout-choice label:has(:checked){border-color:var(--accent);background:var(--surface-raised)}.layout-choice input[type=radio],.settings .layout-options .layout-choice input[type=radio],.map-dialog .map-layout-options .layout-options .layout-choice input[type=radio]{width:20px;height:20px;min-height:20px;accent-color:var(--accent);flex-shrink:0;margin:0;padding:0}.layout-choice span{overflow-wrap:anywhere;gap:.25rem;min-width:0;display:grid}.layout-choice small{color:var(--muted);font-weight:400;line-height:1.4}.layout-options .metadata{font-size:.875rem}.layout-save-status:empty{display:none}.layout-dialog{max-width:36rem;max-height:calc(var(--layout-visible-height,100dvh) - 2rem);overscroll-behavior:contain}.layout-close{float:right;margin-bottom:.75rem}.layout-dialog .layout-options{clear:both}.layout-overlay{height:var(--layout-visible-height,100dvh);z-index:80;padding:max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));bottom:auto}@media (width<=600px){.adaptive-app>header{gap:.5rem;padding:.75rem;display:flex}.adaptive-app>header h1{flex:1 0 100%}.adaptive-app>.quick-nav{max-width:none}.adaptive-app .adaptive-workspace{padding-bottom:calc(var(--quick-nav-height,0px) + var(--composer-space,0px) + 1rem)}.workspace-panel-heading{flex-wrap:wrap}.adaptive-app .composer{border-radius:0;width:100%;left:0}}@media (prefers-reduced-motion:reduce){.adaptive-app *,.layout-overlay *{scroll-behavior:auto;transition:none}}@media (width<=600px){.adaptive-app>.quick-nav{flex-wrap:nowrap}.adaptive-app>.quick-nav button{overflow-wrap:anywhere;min-width:0;padding-inline:4px;font-size:.875rem}}@media (width<=360px){.adaptive-app>.quick-nav button{font-size:.75rem}}:root[data-theme=midnight]{--map-stage:#434b52;--canvas:#0f1f38;--surface:#153045;--surface-raised:#1c4255;--navigation:#0f1f38;--input-bg:#0c192e;--border:#526779;--control-border:#8796ab;--text:#f7f0e0;--muted:#b6bece;--error:#ffaaa5;--warning:#e8dcae;--success:#b9e2c1;--error-bg:#512c2b;--success-bg:#273c37;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=daylight]{--map-stage:#d7dedf;--canvas:#f7f0e0;--surface:#fffbf3;--surface-raised:#eee4d1;--navigation:#f3ead8;--input-bg:#fff;--border:#737e90;--text:#0f1f38;--muted:#4d596c;--error:#a32632;--warning:#725300;--success:#24603c;--error-bg:#fbe7e9;--success-bg:#e1f0e7;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=parchment]{--map-stage:#d9cbb5;--canvas:#eee5d3;--surface:#faf3e5;--surface-raised:#e8dcc5;--navigation:#e9dfcc;--input-bg:#fff9ef;--border:#88785f;--text:#362c21;--muted:#655744;--error:#9c2930;--warning:#725100;--success:#365c35;--error-bg:#f5e0d8;--success-bg:#e4edda;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dungeon]{--map-stage:#39363a;--canvas:#151416;--surface:#222024;--surface-raised:#302c31;--navigation:#1c1a1e;--input-bg:#171519;--border:#80747e;--text:#f2eceb;--muted:#c7bcc3;--error:#ffb4b1;--warning:#e7cc92;--success:#b2d9bc;--error-bg:#512c32;--success-bg:#293b30;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=midnight][data-accent=blue],:root[data-theme=dungeon][data-accent=blue]{--accent:#a5caff;--accent-ink:#0f1f38;--focus:#a5caff}:root[data-theme=midnight][data-accent=green],:root[data-theme=dungeon][data-accent=green]{--accent:#a2d9b2;--accent-ink:#0f1f38;--focus:#a2d9b2}:root[data-theme=midnight][data-accent=gold],:root[data-theme=dungeon][data-accent=gold]{--accent:#e8b95f;--accent-ink:#0f1f38;--focus:#e8b95f}:root[data-theme=midnight][data-accent=purple],:root[data-theme=dungeon][data-accent=purple]{--accent:#d4b7fa;--accent-ink:#0f1f38;--focus:#d4b7fa}:root[data-theme=midnight][data-accent=burgundy],:root[data-theme=dungeon][data-accent=burgundy]{--accent:#e5a4ae;--accent-ink:#0f1f38;--focus:#e5a4ae}:root[data-theme=daylight][data-accent=blue],:root[data-theme=parchment][data-accent=blue]{--accent:#245b9d;--accent-ink:#fff;--focus:#245b9d}:root[data-theme=daylight][data-accent=green],:root[data-theme=parchment][data-accent=green]{--accent:#28623e;--accent-ink:#fff;--focus:#28623e}:root[data-theme=daylight][data-accent=gold],:root[data-theme=parchment][data-accent=gold]{--accent:#735200;--accent-ink:#fff;--focus:#735200}:root[data-theme=daylight][data-accent=purple],:root[data-theme=parchment][data-accent=purple]{--accent:#714299;--accent-ink:#fff;--focus:#714299}:root[data-theme=daylight][data-accent=burgundy],:root[data-theme=parchment][data-accent=burgundy]{--accent:#8e354a;--accent-ink:#fff;--focus:#8e354a}:root{--reading-color:var(--text);--persona-color:var(--accent);--overlay:#000b;--divider:var(--border);--chat-surface:var(--surface);--message-outgoing:var(--surface-raised);--dialog-surface:var(--surface);--tooltip-surface:var(--surface-raised);--disabled:var(--muted);--dice-result:var(--text);--map-controls:var(--surface);--accent-hover:color-mix(in srgb, var(--accent) 88%, var(--text))}body{color:var(--text)}input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}input,select{accent-color:var(--accent)}button:not(:disabled):hover,.upload:hover{background-color:var(--accent-hover)}button.secondary:not(:disabled):hover,button.ghost:not(:disabled):hover,button.small:not(:disabled):hover,button.icon:not(:disabled):hover{background-color:var(--surface-raised)}:where(button,a,input,textarea,select,summary):focus-visible{outline:3px solid var(--focus);outline-offset:3px}.appearance-options{border:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:16px 0;padding:0;display:grid}.appearance-options legend{margin-bottom:8px;font-weight:700}.settings .appearance-options label{border:1px solid var(--border);cursor:pointer;border-radius:10px;align-items:center;gap:10px;min-height:48px;margin:0;padding:10px;display:flex}.appearance-options label:has(:checked){border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.appearance-options small{color:var(--muted);font-size:.8rem;display:block}.theme-swatch{border:1px solid var(--border);background:var(--preview-bg);width:24px;height:32px;box-shadow:inset 0 -9px var(--preview-accent);border-radius:5px;flex-shrink:0}.appearance-options input[type=radio]{flex-shrink:0;width:18px;height:18px}.appearance-settings{overflow-wrap:anywhere}@media (width<=420px){.appearance-options{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){button{transition:none}}:root{--control-border:var(--border)}input,textarea,select{border-color:var(--control-border)!important}.toast,.dictate-button.listening{color:var(--error)}.settings.appearance-settings .appearance-options input[type=radio]{flex:0 0 18px;width:18px;height:18px;min-height:18px;margin:0;padding:0}.appearance-options label>span:last-child{min-width:0}.appearance-settings>label{gap:8px;display:grid}.appearance-settings>label:has(input[type=checkbox]){align-items:center;gap:10px;min-height:44px;display:flex}.appearance-settings select{width:100%;max-width:24rem;min-height:44px}:root{scrollbar-color:var(--muted) var(--canvas)}.appearance-settings :is(input,select):focus{outline:3px solid var(--focus);outline-offset:3px}button{transition-property:box-shadow}
