.game-display{width:100%;min-width:0;color:var(--text)}.game-display-bar{max-width:1240px;margin:auto;padding:4px 24px;min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:12px;box-sizing:border-box}.game-display-bar>span{font-size:12px;font-weight:600}.game-display-bar small{font-size:10px;font-weight:400;color:var(--muted);margin-left:12px}.game-fullscreen-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:8px 13px;border:1px solid var(--border);border-radius:10px;background:var(--surface,#f6f1e6);color:var(--text);font:inherit;font-size:12px;cursor:pointer;touch-action:manipulation;white-space:nowrap}.game-fullscreen-button svg{width:18px;height:18px}.game-fullscreen-button:hover{border-color:#9ca98b}.game-fullscreen-button:focus-visible{outline:3px solid #d6b673;outline-offset:2px}.game-display.is-fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;width:100%;height:100%;max-width:none;background:var(--bg,#f3eee5);overflow:hidden;container-type:normal}.game-display.is-fullscreen .game-viewport{width:var(--game-width);height:var(--game-height);display:flex;flex-direction:column;position:absolute;left:0;top:0;overflow:hidden}.game-display.is-rotated .game-viewport{transform:rotate(90deg);transform-origin:top left;left:100%}.game-display.is-fullscreen .game-display-bar{max-width:none;width:100%;height:48px;flex:0 0 48px;padding:4px max(12px,env(safe-area-inset-right)) 4px max(12px,env(safe-area-inset-left));border-bottom:1px solid var(--border);background:var(--bg,#f3eee5);z-index:100}.game-display.is-fullscreen .game-content{position:relative;min-height:0;flex:1;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;padding:0 max(0px,env(safe-area-inset-right)) max(0px,env(safe-area-inset-bottom)) max(0px,env(safe-area-inset-left));container-type:inline-size}.game-display.is-fullscreen dialog{max-height:calc(var(--game-height) - 24px);max-width:calc(var(--game-width) - 32px)}.game-display.is-rotated dialog[open]{position:fixed;left:50%;top:50%;right:auto;bottom:auto;margin:0;transform:translate(-50%,-50%) rotate(90deg);width:min(680px,calc(var(--game-width) - 32px));max-height:calc(var(--game-height) - 24px)}.game-display.is-fullscreen :is(.cm-modal-scrim,.rg-modal-backdrop){position:absolute;min-height:100%;height:auto}body:has(.ch-in-room){overflow:hidden}.game-display:not(.is-fullscreen):has(.ch-in-room)>.game-viewport>.game-display-bar{display:none}.game-display.is-fullscreen .ch-in-room{position:relative;inset:auto;width:100%;height:var(--play-height);min-height:0;padding:0;max-width:none}.game-display.is-fullscreen .ch-in-room .ch-game-frame.ch-immersive{position:relative;inset:auto;width:100%;height:100%;min-height:0;border:0;border-radius:0}.game-display.is-fullscreen .ch-in-room .ch-world-viewport{padding:0;position:absolute;top:0;right:0;bottom:0;left:0}.game-display.is-fullscreen .ch-in-room .ch-game-frame.ch-immersive .ch-world-viewport .ch-stage{width:min(100%,calc(var(--play-height)*1.866666667));height:auto;aspect-ratio:1.866666667;max-height:100%;min-height:0}.game-display.is-fullscreen .ch-hud-icon[title=全屏游玩]{display:none}.game-display.is-compact :is(.cm-shell,.cr-play-shell.cm-play,.ddz-game,.uno-game,.halli-game){padding:0 8px 8px;max-width:1200px;width:100%;margin:0 auto}.game-display.is-compact .cm-room-bar{padding:0;min-height:38px;gap:8px;flex-wrap:nowrap}.game-display.is-compact .cm-room-bar>div:last-child{width:auto;gap:7px}.game-display.is-compact .cm-room-bar button{min-height:34px;padding:5px 9px}.game-display.is-compact .cm-connection{display:none}.game-display.is-fullscreen .cr-play-shell{min-height:0}.game-display.is-compact .uno-opponent{min-width:0}.game-display.is-compact .uno-opponent-info{gap:6px}.game-display.is-compact .uno-pile-wrap{gap:4px}.game-display.is-compact .uno-mini-cards>b{font-size:16px}.game-display.is-compact .uno-mini-cards>span{width:16px;height:24px}.game-display.is-compact .uno-deck>span{font-size:10px}.game-display.is-compact .uno-deck b{font-size:13px}.game-display.is-compact :is(.ddz-header,.uno-header,.halli-header){margin:0;min-height:40px;display:flex;flex-wrap:nowrap;justify-content:space-between}.game-display.is-compact :is(.ddz-header h1,.uno-header h2,.halli-header h2){font-size:18px;margin:0}.game-display.is-compact :is(.uno-header,.halli-header){display:none}.game-display.is-compact :is(.ddz-eyebrow,.uno-eyebrow,.halli-eyebrow,.ddz-footer,.halli-intro,.ddz-table-topline,.uno-table-heading,.halli-table-note){display:none}.game-display.is-compact :is(.ddz-header-actions button,.ddz-back-button){min-height:34px;height:34px;padding:5px 10px}.game-display.is-compact .ddz-back-button{width:34px}.game-display.is-compact :is(.ddz-table,.uno-table,.halli-table){border-width:3px;border-radius:16px;min-height:0}.game-display.is-compact .ddz-opponents{margin:8px 16px 0;min-height:90px;gap:14px}.game-display.is-compact .ddz-seat{width:190px;max-width:29%}.game-display.is-compact .ddz-opponent{padding:5px 8px;grid-template-columns:30px 1fr;min-height:45px;border-radius:9px}.game-display.is-compact .ddz-avatar{width:30px;height:30px;font-size:15px}.game-display.is-compact .ddz-player-meta strong{font-size:12px}.game-display.is-compact .ddz-player-meta>span{margin-top:2px;font-size:10px}.game-display.is-compact .ddz-opponent-cards{display:none}.game-display.is-compact .ddz-seat-timer{bottom:5px;right:8px;font-size:14px}.game-display.is-compact .ddz-opponent-action{margin:5px auto 0;padding:3px 10px;min-height:27px;font-size:12px}.game-display.is-compact .ddz-seat-played{position:absolute;top:43px;left:100%;width:90px;margin:0;z-index:2}.game-display.is-compact .ddz-seat-right .ddz-seat-played{left:auto;right:100%}.game-display.is-compact .ddz-turn-clock{top:0;padding:3px 9px;min-width:100px}.game-display.is-compact .ddz-turn-clock>strong{font-size:22px}.game-display.is-compact .ddz-turn-clock>span:last-child{display:none}.game-display.is-compact .ddz-center{min-height:45px;padding:0 95px 3px;margin-top:-35px;pointer-events:none}.game-display.is-compact .ddz-center button{pointer-events:auto;min-height:38px}.game-display.is-compact .ddz-bottom-pile{left:15px;top:0}.game-display.is-compact .ddz-trick-area{min-height:45px}.game-display.is-compact .ddz-trick-area>p{font-size:12px;margin:2px}.game-display.is-compact .ddz-table-emblem{display:none}.game-display.is-compact .ddz-trick-label{font-size:10px;margin-bottom:3px}.game-display.is-compact .ddz-played-cards .ddz-face{width:28px;height:40px}.game-display.is-compact .ddz-played-cards .ddz-card-symbol{font-size:15px;bottom:9px;right:5px}.game-display.is-compact .ddz-call-panel h2{font-size:16px;margin:0 0 4px}.game-display.is-compact .ddz-call-panel p{display:none}.game-display.is-compact .ddz-call-panel small{margin:3px 0}.game-display.is-compact .ddz-table-status{padding:3px 12px;min-height:22px;font-size:10px}.game-display.is-compact .ddz-hand-area{padding:3px 12px 6px}.game-display.is-compact .ddz-hand-heading{min-height:22px;font-size:11px}.game-display.is-compact .ddz-you-avatar{width:22px;height:22px}.game-display.is-compact .ddz-hand-scroll{padding:16px 3px 2px}.game-display.is-compact .ddz-hand{min-height:65px;padding:0 6px;justify-content:safe center}.game-display.is-compact .ddz-hand-card{flex-basis:45px;margin-left:-14px}.game-display.is-compact .ddz-hand-card:first-child{margin-left:0}.game-display.is-compact .ddz-hand-card .ddz-face{width:45px;height:64px}.game-display.is-compact .ddz-hand-card .ddz-card-corner b{font-size:15px}.game-display.is-compact .ddz-hand-card .ddz-card-symbol{font-size:22px;right:8px;bottom:15px}.game-display.is-compact .ddz-corner-bottom{display:none}.game-display.is-compact .ddz-controls{margin-top:3px;gap:8px;flex-direction:row}.game-display.is-compact .ddz-controls>p{font-size:10px;flex:1}.game-display.is-compact .ddz-control-buttons{width:auto}.game-display.is-compact .ddz-control-buttons button{min-height:38px;padding:7px 13px;font-size:12px}.game-display.is-compact .uno-table{padding:8px 15px}.game-display.is-compact .uno-opponents{gap:20px}.game-display.is-compact .uno-opponent{width:190px;max-width:29%;padding:6px 8px;min-height:0}.game-display.is-compact .uno-avatar{width:30px;height:30px}.game-display.is-compact .uno-seat-action{margin-top:4px;min-height:26px;padding:4px 7px;font-size:11px}.game-display.is-compact .uno-center{margin-top:-62px;padding:0 0 4px;gap:25px;pointer-events:none}.game-display.is-compact .uno-center button{pointer-events:auto}.game-display.is-compact :is(.uno-deck,.uno-discard){width:54px;height:80px;min-width:0}.game-display.is-compact .uno-oval strong{font-size:27px}.game-display.is-compact .uno-face{border-width:3px}.game-display.is-compact .uno-corner{font-size:12px}.game-display.is-compact .uno-status{font-size:11px;margin:5px 0;min-height:16px}.game-display.is-compact .uno-hand-section{padding:5px 3px 0;margin:3px 0 0}.game-display.is-compact .uno-hand-heading{flex-wrap:nowrap}.game-display.is-compact .uno-hand-heading p{font-size:10px;max-width:none}.game-display.is-compact .uno-call{min-height:38px;padding:6px 15px}.game-display.is-compact .uno-turn-clock b{font-size:23px}.game-display.is-compact .uno-turn-clock{margin-left:auto}.game-display.is-compact .uno-hand{min-height:97px;padding:12px 4px 4px;justify-content:safe center}.game-display.is-compact .uno-hand-card{width:56px;min-width:56px;height:84px;margin-right:-6px}.game-display.is-compact .uno-hand-card .uno-oval strong{font-size:25px}.game-display.is-compact .uno-hand-footnote{padding:4px 0 0}.game-display.is-compact .uno-color-picker{padding:8px;position:absolute;left:50%;bottom:0;transform:translate(-50%);width:min(430px,90%);z-index:5}.game-display.is-compact .uno-color-picker button{min-height:40px}.game-display.is-compact .uno-pass{min-height:38px;margin:4px 0}.game-display.is-compact :is(.uno-rules,.halli-rules){margin-top:8px}.game-display.is-compact .halli-table{padding:8px 14px}.game-display.is-compact .halli-seats{display:grid;grid-template-columns:1fr 1.05fr 1fr;gap:12px;align-items:start}.game-display.is-compact .halli-seat{padding:8px;min-width:0}.game-display.is-compact .halli-seat-self{grid-column:auto;grid-row:auto}.game-display.is-compact .halli-card-area{min-height:100px;padding:5px 0}.game-display.is-compact :is(.halli-fruit-card,.halli-empty-card){width:65px;height:94px}.game-display.is-compact .halli-bell-area{grid-column:2;grid-row:1;align-self:center;margin:0;padding:0}.game-display.is-compact .halli-controls{margin:3px 0}.game-display.is-compact .halli-controls p{display:none}.game-display.is-compact .halli-controls strong{font-size:11px}.game-display.is-compact .halli-flip{min-height:40px;margin-top:5px;padding:6px 15px}.game-display.is-compact .halli-status{margin:6px 0;font-size:11px}.game-display.is-compact .halli-table-footnote{font-size:9px;padding-top:4px}.game-display.is-compact :is(.cm-shell,.cr-play-shell.cm-play,.uno-game,.halli-game){padding-bottom:0}.game-display.is-compact .uno-opponents{position:absolute;left:15px;right:15px;top:8px}.game-display.is-compact .uno-center{margin:0;padding:0 0 3px}.game-display.is-compact :is(.uno-deck,.uno-discard){height:70px;width:48px}.game-display.is-compact .uno-flow{font-size:30px;line-height:1.2}.game-display.is-compact .uno-flow small{margin-top:5px}.game-display.is-compact .uno-player-name{line-height:1.3}.game-display.is-compact .uno-player-name small{font-size:9px}.game-display.is-compact .uno-seat-action{line-height:1.3;min-height:26px}.game-display.is-compact .uno-seat-action b{height:20px}.game-display.is-compact .uno-hand-footnote{display:none}.game-display.is-compact .ddz-header{position:relative;min-height:0;height:0;z-index:4}.game-display.is-compact .ddz-header-title{display:none}.game-display.is-compact .ddz-header-actions{position:absolute;right:100px;top:-37px}.game-display.is-compact .ddz-opponents{padding-top:0;min-height:80px}.game-display.is-compact .ddz-player-meta{line-height:1.3}.game-display.is-compact .ddz-hand-heading{flex-wrap:nowrap}.game-display.is-compact .ddz-hand-turn{flex-basis:auto}.game-display.is-compact .ddz-timeout-note{display:none}.game-display.is-compact .ddz-controls{align-items:center}.game-display.is-compact .ddz-control-buttons button{white-space:nowrap;flex:none;min-width:62px;min-height:40px}.game-display.is-compact .ddz-control-buttons .ddz-play-button{flex:none;min-width:83px}.game-display.is-compact .ddz-opponents{margin-top:4px}.game-display.is-compact .ddz-hand-area{padding-bottom:2px}.game-display.is-compact .halli-seat-count,.game-display.is-compact .halli-controls>strong,.game-display.is-compact .halli-table-footnote{display:none}.game-display.is-compact .halli-player{line-height:1.25;margin-bottom:3px}.game-display.is-compact .halli-player>strong{line-height:1.25}.game-display.is-compact .halli-status{min-height:20px;line-height:1.5}.game-display.is-compact .ch-hud-resources{left:50%;transform:translate(-50%);gap:15px}.game-display.is-rotated .game-display-bar{padding-left:max(12px,env(safe-area-inset-top));padding-right:max(12px,env(safe-area-inset-bottom))}.game-display.is-rotated .game-content{padding-left:env(safe-area-inset-top);padding-right:env(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-left)}.game-display.is-compact .gd-stage:not(.is-preparing){width:100%;aspect-ratio:auto;height:calc(var(--play-height) - 140px);min-height:175px}.game-display.is-compact .rg-page.phase-battle{display:grid;grid-template-columns:155px minmax(0,1fr);grid-template-areas:"tools tools" "run battle" "party battle" "log log";grid-template-rows:36px auto 1fr auto;gap:6px 10px;padding:4px 12px 12px}.game-display.is-compact .phase-battle>.rg-back{grid-area:tools;justify-self:start;align-self:center;z-index:2;font-size:11px}.game-display.is-compact .phase-battle>.rg-topbar{grid-area:tools;justify-self:end;align-self:center;margin:0}.game-display.is-compact .phase-battle .rg-wordmark,.game-display.is-compact .phase-battle .rg-connection{display:none}.game-display.is-compact .phase-battle>.rg-runbar{grid-area:run;display:block;margin:0;padding:3px 6px}.game-display.is-compact .phase-battle .rg-runbar h1{font-size:18px;margin:3px 0}.game-display.is-compact .phase-battle .rg-runbar .rg-eyebrow{font-size:8px}.game-display.is-compact .phase-battle .rg-room-actions{flex-wrap:wrap;gap:4px}.game-display.is-compact .phase-battle .rg-room-actions button{font-size:10px;padding:3px;min-height:28px}.game-display.is-compact .phase-battle>.rg-party{grid-area:party;display:flex;flex-direction:column;gap:5px;margin:0;align-self:start}.game-display.is-compact .phase-battle .rg-player{display:block;padding:6px;min-height:0}.game-display.is-compact .phase-battle .rg-player-avatar{display:none}.game-display.is-compact .phase-battle .rg-player-name{margin-bottom:3px;font-size:11px}.game-display.is-compact .phase-battle .rg-player-stats{margin-top:3px;gap:5px;font-size:9px}.game-display.is-compact .phase-battle .rg-player-bottom{margin:2px 0 0;gap:3px}.game-display.is-compact .phase-battle .rg-player-bottom button{font-size:10px;min-height:30px;padding:3px}.game-display.is-compact .phase-battle>.rg-battle{grid-area:battle;display:grid;grid-template-columns:minmax(150px,.85fr) minmax(0,1.3fr);grid-template-areas:"title turn" "arena hand" "piles piles";grid-template-rows:44px 190px auto;min-width:0;align-self:start}.game-display.is-compact .phase-battle .rg-battle-heading{grid-area:title;padding:5px 8px;gap:5px}.game-display.is-compact .phase-battle .rg-battle-heading h2{font-size:13px;margin:0}.game-display.is-compact .phase-battle .rg-battle-heading .rg-eyebrow{display:none}.game-display.is-compact .phase-battle .rg-battle-heading .rg-pill{font-size:9px;padding:3px}.game-display.is-compact .phase-battle .rg-arena{grid-area:arena;min-height:0;padding:3px;overflow:auto}.game-display.is-compact .phase-battle .rg-enemies{gap:2px;flex-wrap:nowrap}.game-display.is-compact .phase-battle .rg-enemy{flex:1;max-width:160px;width:auto;padding:3px;min-width:0}.game-display.is-compact .phase-battle .rg-enemy>.rg-character{height:95px;width:100%;object-fit:contain}.game-display.is-compact .phase-battle .rg-intent{font-size:10px;gap:3px;min-height:25px;margin:0}.game-display.is-compact .phase-battle .rg-enemy-name{font-size:11px}.game-display.is-compact .phase-battle .rg-target-label{font-size:9px;margin-top:3px}.game-display.is-compact .phase-battle .rg-turnbar{grid-area:turn;position:static;margin:0;border-radius:0;padding:3px 6px;gap:4px}.game-display.is-compact .phase-battle .rg-energy{gap:4px}.game-display.is-compact .phase-battle .rg-energy>span{width:25px;height:25px;font-size:18px}.game-display.is-compact .phase-battle .rg-energy b{font-size:10px}.game-display.is-compact .phase-battle .rg-energy small{display:none}.game-display.is-compact .phase-battle .rg-turnbar button{min-height:38px;padding:5px 8px;font-size:11px;white-space:nowrap}.game-display.is-compact .phase-battle .rg-hand{grid-area:hand;min-height:0;margin:0;padding:8px 5px;gap:7px;align-items:stretch;justify-content:flex-start}.game-display.is-compact .phase-battle .rg-hand .rg-card{flex:0 0 110px;width:110px;min-height:170px;padding:8px;border-radius:8px}.game-display.is-compact .phase-battle .rg-card-art{height:38px;margin:16px 0 4px}.game-display.is-compact .phase-battle .rg-card-art .rg-sigil{width:30px;height:30px}.game-display.is-compact .phase-battle .rg-card>strong{font-size:13px;margin:4px 0}.game-display.is-compact .phase-battle .rg-card-description{font-size:10px;line-height:1.5}.game-display.is-compact .phase-battle .rg-card>small{font-size:8px}.game-display.is-compact .phase-battle .rg-card-kind{font-size:8px}.game-display.is-compact .phase-battle .rg-card-cost{font-size:16px;top:6px;left:8px}.game-display.is-compact .phase-battle .rg-piles{grid-area:piles;padding:4px 8px;gap:6px;flex-wrap:wrap}.game-display.is-compact .phase-battle .rg-piles button{font-size:10px;min-height:30px;padding:4px 7px}.game-display.is-compact .phase-battle>.rg-log{grid-area:log;margin-top:8px}.game-display.is-compact .phase-battle>.rg-notice{grid-column:1/-1}.game-display.is-short .uno-table{padding-top:4px;padding-bottom:4px}.game-display.is-short .uno-hand{min-height:86px;padding-top:10px}.game-display.is-short .uno-hand-card{height:74px;width:50px;min-width:50px}.game-display.is-short .ddz-opponents{min-height:68px}.game-display.is-short .ddz-opponent-action{min-height:22px;font-size:11px;margin-top:3px}.game-display.is-short .ddz-hand-scroll{padding-top:12px}.game-display.is-short .ddz-hand{min-height:59px}.game-display.is-short .ddz-hand-card .ddz-face{height:59px}.game-display.is-short .ddz-table-status{min-height:18px;padding-top:1px;padding-bottom:1px}.game-display.is-short .rg-page.phase-battle{grid-template-columns:140px minmax(0,1fr)}.game-display.is-short .phase-battle>.rg-battle{grid-template-columns:minmax(125px,.8fr) minmax(0,1.4fr);grid-template-rows:42px 178px auto}.game-display.is-short .phase-battle .rg-hand .rg-card{min-height:158px;flex-basis:104px;width:104px}.game-display.is-short .phase-battle .rg-card-art{height:28px}.game-display.is-short .phase-battle .rg-enemy>.rg-character{height:83px}.game-display.is-compact .phase-battle .rg-turnbar{background:#26332f;color:#ece6d9}.game-display.is-compact .phase-battle .rg-energy>span{line-height:23px}.game-display.is-compact .phase-battle .rg-enemy>.rg-character{height:83px}.game-display.is-compact .phase-battle .rg-enemy-name{margin-bottom:3px}.game-display.is-compact .phase-battle .rg-statuses{min-height:0;margin-top:2px}.game-display.is-compact .phase-battle .rg-intent{padding:3px 5px;line-height:1.3}.game-display.is-compact .gd-in-room{padding:0 8px 8px;max-width:none}.game-display.is-compact .gd-topbar{min-height:40px;margin:0;padding:0;display:flex}.game-display.is-compact .gd-topbar button{min-height:36px;font-size:11px}.game-display.is-compact .gd-wordmark small,.game-display.is-compact .gd-session-line{display:none}.game-display.is-compact .gd-combat-frame{width:100%;margin:0 auto;scroll-margin-top:0}.game-display.is-compact .gd-battle-heading{min-height:32px;padding:3px 10px}.game-display.is-compact .gd-command-deck{position:relative;top:0;padding:4px 10px;gap:10px}.game-display.is-compact .gd-seedbank{gap:5px}.game-display.is-compact .gd-seed{min-height:46px;height:50px}.game-display.is-compact .gd-seed svg{width:32px;height:32px}.game-display.is-compact .gd-seed b{font-size:10px}.game-display.is-compact .gd-empty-seed{height:50px}.game-display.is-compact .gd-own-sun{min-width:50px}.game-display.is-compact .gd-own-sun small{display:none}.game-display.is-compact .gd-shovel{min-height:48px;height:50px}.game-display.is-compact .gd-context-strip{padding:3px 10px;font-size:10px}.game-display.is-compact .gd-stage:not(.is-preparing){aspect-ratio:3.1;min-height:180px;max-height:calc(var(--play-height) - 135px)}.game-display.is-compact .gd-preparation{position:relative}.game-display.is-compact .gd-prep-sheet{max-width:none}.game-display.is-compact .gd-stage.is-preparing{aspect-ratio:auto;min-height:0}.game-display.is-compact .rg-page{padding:6px 16px 20px;max-width:1200px}.game-display.is-compact .rg-topbar{margin:0 0 8px}.game-display.is-compact .rg-back{margin:0}.game-display.is-compact .rg-runbar{margin:8px 0}.game-display.is-compact .rg-runbar h1{font-size:22px}.game-display.is-compact .rg-arena{min-height:160px;padding:10px}.game-display.is-compact .rg-enemies{gap:15px}.game-display.is-compact .rg-hand{flex-wrap:nowrap;overflow-x:auto;justify-content:safe center;padding:12px 4px;overscroll-behavior-x:contain}.game-display.is-compact .rg-hand .rg-card{flex-shrink:0}.game-display.is-compact .rg-turnbar{position:sticky;bottom:0;z-index:10;background:var(--bg,#201e23);padding:8px 12px;border-radius:10px}.game-display.is-compact .ch-in-room .ch-hud-top{top:5px;left:12px;right:12px}.game-display.is-compact .ch-hud-location strong{font-size:13px}.game-display.is-compact .ch-hud-location small{font-size:9px}.game-display.is-compact .ch-hud-team{top:55px;left:15px;font-size:10px}.game-display.is-compact .ch-hud-resources{top:16px;font-size:12px}.game-display.is-compact .ch-hud-hint{top:78px;bottom:auto;font-size:10px}.game-display.is-compact .ch-scene-overlay{padding:50px 100px 60px}.game-display.is-compact .ch-scene-menu{max-height:100%;overflow-y:auto;padding:5px 15px}.game-display.is-compact .ch-scene-menu h2{font-size:22px}.game-display.is-compact .ch-scene-travelers{margin:8px 0}.game-display.is-compact .ch-scene-travelers svg{width:36px;height:40px}.game-display.is-compact .ch-immersive-directions{left:14px;bottom:10px}.game-display.is-compact .ch-immersive-actions{right:14px;bottom:10px;flex-direction:row;gap:8px}.game-display.is-compact .ch-in-room button.ch-control-button{min-height:44px;height:48px;width:52px}.game-display.is-compact .ch-in-room button.ch-skill-control{width:62px;font-size:20px}.game-display.is-compact .ch-in-room button.ch-jump-control{width:62px}.game-display.is-compact .ch-in-room button.ch-hud-icon{width:40px;height:40px}.game-display.is-compact .ch-control-button>span{font-size:10px}.game-display.is-compact .halli-seats{grid-template-columns:1fr 90px 1fr 1fr;gap:10px}.game-display.is-compact .halli-seat-left{grid-column:1;grid-row:1}.game-display.is-compact .halli-seat-right{grid-column:3;grid-row:1}.game-display.is-compact .halli-seat-self{grid-column:4;grid-row:1;display:block;border-top:0;border-left:1px solid #d0d9ae2a;padding:4px 8px;margin:0}.game-display.is-compact .halli-card-area{min-height:95px}.game-display.is-compact :is(.halli-face,.halli-seat-self .halli-face,.halli-empty-card){width:68px;height:95px;padding:17px 5px 12px}.game-display.is-compact .halli-face .halli-fruit{width:21px;height:21px}.game-display.is-compact .halli-face.halli-count-1 .halli-fruit{width:36px;height:36px}.game-display.is-compact .halli-face.halli-count-2 .halli-fruit{width:28px;height:28px}.game-display.is-compact .halli-player{padding:4px;min-height:34px}.game-display.is-compact .halli-avatar{width:26px;height:26px}.game-display.is-compact .halli-seat-turn{margin:4px 0;min-height:24px;padding:3px 5px;font-size:10px}.game-display.is-compact .halli-seat-count{margin-top:3px;font-size:10px}.game-display.is-compact .halli-bell{transform:scale(.8);margin:-10px}@media (max-width:600px){.game-display-bar{padding:4px 14px}.game-fullscreen-button{min-height:44px}.game-display:not(.is-fullscreen) .cm-seats{overflow-x:auto}.game-display:not(.is-fullscreen) .cm-seat{min-width:104px}.game-display :is(.uno-call,.uno-pass,.halli-flip,.ddz-control-buttons button){min-height:44px}.game-display :is(.ddz-hand-scroll,.uno-hand){overscroll-behavior-x:contain}.game-display:not(.is-fullscreen) .rg-hand{overflow-x:auto;flex-wrap:nowrap;justify-content:flex-start}.game-display:not(.is-fullscreen) .rg-hand .rg-card{flex-shrink:0}}.game-display.is-fullscreen{--game-safe-top:env(safe-area-inset-top,0px);--game-safe-right:env(safe-area-inset-right,0px);--game-safe-bottom:env(safe-area-inset-bottom,0px);--game-safe-left:env(safe-area-inset-left,0px)}.game-display.is-fullscreen.is-rotated{--game-safe-top:env(safe-area-inset-right,0px);--game-safe-right:env(safe-area-inset-bottom,0px);--game-safe-bottom:env(safe-area-inset-left,0px);--game-safe-left:env(safe-area-inset-top,0px)}.game-display.is-fullscreen>.game-viewport>.game-content{height:100%;width:100%;padding:0;flex:1 1 100%;min-height:0;box-sizing:border-box}.game-menu-toggle{position:absolute;top:max(8px,var(--game-safe-top));right:max(8px,var(--game-safe-right));z-index:100;display:grid;place-items:center;width:44px;height:44px;padding:10px;border:1px solid #e9e1c54d;border-radius:50%;background:#102f27b8;color:#fff8e7;box-shadow:0 2px 12px #0002;cursor:pointer;touch-action:manipulation}.game-menu-toggle svg{width:22px;height:22px}.game-menu-toggle:focus-visible{outline:3px solid #efd18e;outline-offset:3px}.game-display .game-menu-dialog,.game-display .game-help-dialog{box-sizing:border-box;color:#2f493a;background:#faf6eb;border:1px solid #ded5bf;border-radius:18px;box-shadow:0 20px 80px #10291d66;padding:18px;width:min(340px,calc(var(--game-width) - 28px));max-height:calc(var(--game-height) - 24px);overflow:auto;overscroll-behavior:contain}.game-display :is(.game-menu-dialog,.game-help-dialog)::backdrop{background:#0c241c80;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.game-display :is(.game-menu-dialog,.game-help-dialog)>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.game-display :is(.game-menu-dialog,.game-help-dialog) h2{font-family:inherit;font-size:18px;margin:0}.game-display :is(.game-menu-dialog,.game-help-dialog)>header button{font:inherit;font-size:25px;line-height:1;display:grid;place-items:center;width:40px;height:40px;flex-shrink:0;border:0;border-radius:50%;background:#e7e9dc;color:#34503e;cursor:pointer}.game-menu-actions{display:grid;gap:8px}.game-menu-actions>button{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;font:inherit;font-size:14px;min-height:46px;padding:11px 15px;border:1px solid #d7decb;border-radius:10px;background:#f1f1e7;color:#314e3d;text-align:left;cursor:pointer;touch-action:manipulation}.game-menu-actions>button small{font-size:12px;color:#62785b;overflow-wrap:anywhere}.game-menu-actions>button:disabled{opacity:.5;cursor:default}.game-menu-actions>button:focus-visible{outline:3px solid #d8b972;outline-offset:2px}.game-menu-actions>button.game-menu-resume{background:#2f5c43;color:#fff8e7;border-color:#2f5c43;justify-content:center;font-weight:700}.game-display .game-help-dialog{width:min(640px,calc(var(--game-width) - 32px));font-size:13px;line-height:1.8}.game-help-content .ddz-rules{margin:0;border:0;padding:0;background:transparent}.game-help-content p{margin:10px 0;color:#5f705a}.game-display.is-rotated :is(.game-menu-dialog,.game-help-dialog)[open]{width:min(340px,calc(var(--game-width) - 28px))}.game-display.is-rotated .game-help-dialog[open]{width:min(640px,calc(var(--game-width) - 32px))}.game-display.is-fullscreen:has(.cm-play)>.game-viewport>.game-content{overflow:hidden;background:#254f3a}.game-display.is-fullscreen .cm-shell:has(.cm-play),.game-display.is-fullscreen .cr-play-shell.cm-play{width:100%;max-width:none;height:100%;min-height:0;margin:0;padding:0}.game-display.is-fullscreen :is(.cm-room-bar,.ddz-header,.uno-header,.halli-header,.ddz-footer,.halli-intro,.ddz-table-topline,.uno-table-heading,.halli-table-note,.ddz-timeout-note,.uno-hand-footnote,.halli-table-footnote,.halli-helper,.card-rematch-exit){display:none!important}.game-display.is-fullscreen :is(.ddz-game,.uno-game,.halli-game){box-sizing:border-box;width:100%;max-width:none;height:100%;margin:0;padding:0}.game-display.is-fullscreen.is-compact :is(.cm-shell,.cr-play-shell.cm-play,.ddz-game,.uno-game,.halli-game){padding:0;margin:0;max-width:none;width:100%;height:100%}.game-display.is-fullscreen :is(.ddz-table,.uno-table,.halli-table){box-sizing:border-box;width:100%;height:100%;min-height:0;margin:0;border:0;border-radius:0;box-shadow:none;display:flex;flex-direction:column;padding:max(8px,var(--game-safe-top)) max(14px,var(--game-safe-right)) max(6px,var(--game-safe-bottom)) max(14px,var(--game-safe-left))}.game-display.is-fullscreen :is(.ddz-table:after,.halli-table:before){top:6px;right:6px;bottom:6px;left:6px;border-radius:12px}.game-display.is-fullscreen .cm-shell>:is(.cm-error,.cm-notice){position:absolute;z-index:30;left:70px;right:70px;top:8px;width:auto;margin:0;padding:8px 12px}.game-display.is-fullscreen .cm-modal-scrim{position:absolute;top:0;right:0;bottom:0;left:0;height:100%;min-height:0}.game-display.is-fullscreen .ddz-opponents{flex:0 0 auto;margin:4px 50px 0 10px;padding-top:0;min-height:80px;gap:16px}.game-display.is-fullscreen .ddz-seat{width:clamp(155px,24%,230px);max-width:30%}.game-display.is-fullscreen.is-compact .ddz-turn-clock{left:50%;top:0;transform:translate(-50%);width:100px;height:auto;min-width:100px;max-width:100px;flex-direction:column;gap:0;border:1px solid #e5ce9173;border-radius:16px;background:#284d3be6}.game-display.is-fullscreen .ddz-center{flex:1 1 auto;margin-top:0;min-height:54px;padding:4px 100px;align-items:center}.game-display.is-fullscreen .ddz-bottom-pile{left:12px;top:12px;transform:none;display:block}.game-display.is-fullscreen .ddz-bottom-pile>div{margin-top:4px}.game-display.is-fullscreen .ddz-table-status{flex:0 0 auto;min-height:20px;padding:2px 12px 5px}.game-display.is-fullscreen .ddz-hand-area{flex:0 0 auto;padding:5px 8px 0;background:transparent}.game-display.is-fullscreen .ddz-hand-heading{min-height:24px;flex-wrap:nowrap}.game-display.is-fullscreen .ddz-hand-heading>div{flex-wrap:nowrap}.game-display.is-fullscreen .ddz-hand-turn{flex-basis:auto}.game-display.is-fullscreen .ddz-mobile-scroll{display:none}.game-display.is-fullscreen .ddz-hand-scroll{padding:23px 3px 4px;scrollbar-width:none}.game-display.is-fullscreen .ddz-hand-scroll::-webkit-scrollbar{display:none}.game-display.is-fullscreen .ddz-hand{min-height:calc(clamp(68px,var(--game-height) * .22,105px) + 4px);padding:0 7px;justify-content:safe center}.game-display.is-fullscreen .ddz-hand-card{flex-basis:clamp(46px,var(--game-height) * .14,64px);margin-left:-16px}.game-display.is-fullscreen .ddz-hand-card:first-child{margin-left:0}@container (max-width:740px){.game-display.is-fullscreen .ddz-hand-card:not(:first-child){margin-left:-25px}}.game-display.is-fullscreen .ddz-hand-card .ddz-face{width:clamp(46px,var(--game-height) * .14,64px);height:clamp(68px,var(--game-height) * .22,105px)}.game-display.is-fullscreen .ddz-controls{flex-direction:row;align-items:center;margin:5px 0 0;gap:10px}.game-display.is-fullscreen .ddz-controls>p{flex:1;text-align:left;min-width:0;font-size:11px}.game-display.is-fullscreen .ddz-control-buttons{width:auto;flex-shrink:0}.game-display.is-fullscreen .ddz-control-buttons button{min-height:40px;min-width:58px;flex:none;white-space:nowrap}.game-display.is-fullscreen .ddz-control-buttons .ddz-play-button{min-width:86px}.game-display.is-fullscreen .ddz-center:has(.ddz-result){padding-top:8px}.game-display.is-fullscreen .ddz-result-stack{max-width:650px;width:100%;padding:16px}.game-display.is-fullscreen.is-short .ddz-table-status{display:none}.game-display.is-fullscreen.is-short .ddz-opponents{min-height:72px}.game-display.is-fullscreen.is-short .ddz-bottom-pile{top:0}.game-display.is-fullscreen.is-short .ddz-player-meta strong small{display:inline;margin:0 0 0 4px}.game-display.is-fullscreen.is-short .ddz-opponent-action{line-height:1.3;min-height:24px;padding:2px 8px}.game-display.is-fullscreen.is-short .ddz-hand-heading{min-height:22px}.game-display.is-fullscreen.is-short .ddz-hand-scroll{padding-top:20px;padding-bottom:0}.game-display.is-fullscreen .uno-opponents{position:absolute;left:max(20px,var(--game-safe-left));right:max(64px,var(--game-safe-right));top:max(12px,var(--game-safe-top));gap:14px}.game-display.is-fullscreen .uno-opponent{width:clamp(150px,25%,230px);max-width:30%;min-width:0}.game-display.is-fullscreen .uno-center{flex:1 1 auto;min-height:100px;margin:0;padding:50px 0 6px;align-items:center;gap:25px}.game-display.is-fullscreen :is(.uno-deck,.uno-discard){height:clamp(80px,var(--game-height) * .27,150px);width:clamp(54px,var(--game-height) * .18,100px)}.game-display.is-fullscreen .uno-status{flex:0 0 auto;margin:3px 0 7px;font-size:12px;min-height:18px}.game-display.is-fullscreen .uno-hand-section{flex:0 0 auto;margin:0;padding:6px 8px 0}.game-display.is-fullscreen .uno-hand{min-height:0;padding:17px 4px 7px;justify-content:safe center}.game-display.is-fullscreen .uno-hand-card{width:clamp(53px,var(--game-height) * .16,83px);min-width:clamp(53px,var(--game-height) * .16,83px);height:clamp(80px,var(--game-height) * .24,124px)}.game-display.is-fullscreen .uno-color-picker{z-index:10}.game-display.is-fullscreen .halli-seats{flex:1;width:100%;max-width:1100px;align-items:center;margin:0 auto;padding:8px 50px 8px 0}.game-display.is-fullscreen .halli-status{flex:0 0 auto;margin:4px 0;min-height:20px}.game-display.is-fullscreen .halli-card-area{min-height:0}.game-display.is-fullscreen :is(.halli-face,.halli-seat-self .halli-face,.halli-empty-card){width:clamp(75px,var(--game-height) * .26,140px);height:clamp(105px,var(--game-height) * .37,195px)}.game-display.is-fullscreen .halli-count-helper{position:absolute;bottom:5px;left:10px;right:10px;margin:0;justify-content:center;z-index:6;background:#f4f0e4e8;border-radius:8px}.game-display.is-fullscreen :is(.uno-result,.halli-result){top:12px;right:10%;bottom:12px;left:10%;max-height:calc(var(--game-height) - 24px);overflow:auto;z-index:20}.game-display.is-fullscreen :is(.gd-topbar,.gd-session-line,.rg-back,.rg-topbar,.rg-room-actions,.ch-topline,.ch-heading,.ch-atlas-info){display:none!important}.game-display.is-fullscreen .gd-in-room{max-width:none;margin:0;padding:0;min-height:100%}.game-display.is-fullscreen .gd-combat-frame{margin:0;border-radius:0;border:0;max-width:none}.game-display.is-fullscreen .gd-battle-heading{padding-right:64px}.game-display.is-fullscreen .gd-stage:not(.is-preparing){max-height:none;height:calc(var(--game-height) - 100px)}.game-display.is-fullscreen .ch-in-room{height:var(--game-height)}.game-display.is-fullscreen:has(.ch-menu-trigger) .game-menu-toggle{display:none}.game-display.is-fullscreen .ch-atlas-header>.ch-map-icon{display:none}.game-display.is-fullscreen .ch-atlas-header{padding-right:64px}.game-display.is-fullscreen .rg-page.rg-immersive{padding-top:8px}.game-display.is-fullscreen .rg-runbar{padding-right:64px}@media (prefers-reduced-motion:reduce){.game-menu-dialog,.game-help-dialog{scroll-behavior:auto}}:root{--bg: #eee9e1;--panel: rgba(248, 244, 237, .88);--panel-2: rgba(243, 238, 230, .94);--border: rgba(105, 84, 67, .17);--text: #403a34;--muted: #776d64;--accent: #c46643;--accent-2: #a95134;--danger: #b94f45}.blog-page .blog-hero{align-items:flex-start}.blog-page .blog-hero>div{max-width:820px}.blog-floating-actions{position:fixed;z-index:340;right:clamp(18px,3vw,34px);bottom:clamp(20px,4vw,38px);display:flex;flex-direction:column;align-items:center;gap:12px}.blog-create-fab,.blog-search-fab{display:grid;place-items:center;padding:0;color:#fff;border:0;border-radius:50%;background:linear-gradient(145deg,#cf7654,#a65337);box-shadow:0 13px 30px #5b30234d}.blog-create-fab{width:62px;height:62px;font-size:31px;font-weight:300}.blog-search-fab{width:48px;height:48px;background:color-mix(in srgb,var(--panel) 88%,#6e4a51);border:1px solid color-mix(in srgb,var(--accent) 28%,var(--border));color:var(--accent-2)}.blog-search-fab svg{width:21px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}.blog-create-fab:hover,.blog-search-fab:hover{transform:translateY(-2px);box-shadow:0 16px 34px #5b30235c}.article-cover.has-image,.cover-upload-preview.has-image{background-position:center;background-size:cover}.article-card{min-height:230px}.article-card:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.article-card .article-cover{min-height:100%}.article-page,.blog-editor-page{min-height:calc(100vh - 68px);padding:34px clamp(16px,4vw,56px) 72px;background:radial-gradient(circle at 7% 2%,rgba(202,149,112,.18),transparent 26%),radial-gradient(circle at 94% 18%,rgba(158,116,128,.11),transparent 28%),linear-gradient(145deg,#f0ece5,#e9e3db 55%,#e6dfd7)}.article-page-toolbar{width:min(960px,100%);margin:0 auto 18px;display:flex;justify-content:space-between;gap:12px}.article-page-toolbar>div{display:flex;gap:8px}.article-reader-page{width:min(960px,100%);margin:0 auto}.article-reader-page .article-reader-cover{min-height:270px;height:270px;padding:26px;border-radius:0}.article-reader-page .article-reader-content{padding-block:46px 68px}.dedicated-editor-head{position:sticky;z-index:40;top:var(--editor-nav-height, 68px);width:min(1380px,100%);margin:-12px auto 20px;padding:15px 18px;display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px solid var(--border);border-radius:18px;background:color-mix(in srgb,var(--panel) 92%,transparent);box-shadow:0 14px 36px #43302814;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.dedicated-editor-head p{margin:0}.dedicated-editor-head h1{margin:1px 0 0;font-family:Georgia,Songti SC,serif;font-size:25px}.dedicated-editor-actions{display:flex;align-items:center;gap:8px}.dedicated-editor-actions button{white-space:nowrap}.dedicated-editor-actions button>span{margin-left:4px;padding:1px 6px;border-radius:999px;background:color-mix(in srgb,var(--accent) 10%,transparent);font-size:11px}.dedicated-editor-form{width:min(1380px,100%);margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) 310px;align-items:start;gap:20px}.editor-main-column,.editor-setting-card{border:1px solid var(--border);background:color-mix(in srgb,var(--panel) 88%,transparent);box-shadow:0 16px 42px #483a2f0f}.editor-main-column{padding:clamp(18px,3vw,34px);border-radius:22px}.editor-side-column{position:sticky;top:170px;display:grid;gap:16px}.editor-setting-card{padding:18px;border-radius:18px}.editor-setting-card h2{margin-bottom:15px;font-family:Georgia,Songti SC,serif;font-size:18px}.setting-card-title{display:flex;align-items:center;justify-content:space-between;gap:10px}.setting-card-title button{padding:4px 8px;color:var(--danger);font-size:11px}.cover-upload-preview{width:100%;height:168px;margin-bottom:14px;display:grid;place-items:center;color:#fff;border:1px dashed rgba(255,255,255,.4);border-radius:14px;overflow:hidden}.cover-upload-preview>span{padding:6px 10px;border-radius:999px;background:#1a131661;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.editor-setting-card .cover-tone-picker{margin-bottom:0}.rich-editor-shell{overflow:visible;border:1px solid var(--border);border-radius:15px;background:var(--panel-2)}.rich-editor-toolbar{position:sticky;top:var(--editor-toolbar-top, 170px);z-index:50;padding:8px;display:flex;align-items:center;flex-wrap:wrap;gap:5px;border-radius:14px 14px 0 0;border-bottom:1px solid var(--border);background:var(--panel);box-shadow:0 5px 12px #23171d14}.rich-editor-toolbar button,.rich-editor-toolbar select{min-width:34px;height:32px;margin:0;padding:4px 8px;color:var(--text);border:1px solid var(--border);border-radius:8px;background:var(--panel-2);font-family:inherit;font-size:12px}.rich-editor-toolbar button{cursor:pointer}.rich-editor-toolbar button:hover:not(:disabled),.rich-editor-toolbar select:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--border));color:var(--accent-2)}.rich-editor-toolbar button:active:not(:disabled){transform:translateY(1px)}.rich-editor-toolbar button:focus-visible,.rich-editor-toolbar select:focus-visible{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent)}.rich-editor-toolbar select{width:auto;-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:25px;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23776d64' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 9px center}.rich-editor-toolbar select option{background:#f6f1e9;color:#403a34}:root[data-theme=dark] .rich-editor-toolbar select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23b9a5ad' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}:root[data-theme=dark] .rich-editor-toolbar select option{background:#2e2630;color:#f2e7eb}.toolbar-separator{width:1px;height:22px;margin:0 2px;background:var(--border)}.toolbar-color{position:relative;width:34px;height:32px;display:grid;place-items:center;border:1px solid var(--border);border-radius:8px;background:var(--panel-2);font-family:Georgia,serif;font-weight:700;cursor:pointer}.toolbar-color:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--border))}.toolbar-color span{padding-bottom:3px;border-bottom:3px solid var(--accent);line-height:13px}.toolbar-color input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.rich-editor-body{position:relative}.rich-editor-mirror{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden;margin:0;padding:22px;color:var(--text);background:transparent;font:16px/30px Georgia,Songti SC,serif;white-space:pre-wrap;word-break:normal;overflow-wrap:break-word;pointer-events:none}.rich-editor-mirror span{line-height:30px}.rich-editor-mirror .ov-ghost{color:var(--muted);opacity:.62}.rich-editor-mirror .ov-b{font-weight:700}.rich-editor-mirror .ov-i{font-style:italic}.rich-editor-mirror .ov-u{text-decoration:underline;text-underline-offset:3px}.rich-editor-mirror .ov-h{color:var(--accent-2);font-weight:700}.rich-editor-mirror .ov-quote{color:var(--muted)}.rich-editor-mirror .ov-code-inline{color:var(--accent-2);background:color-mix(in srgb,var(--accent) 13%,transparent);border-radius:4px}.rich-editor-mirror .ov-code{color:var(--muted);background:color-mix(in srgb,var(--accent) 7%,transparent)}.rich-editor-mirror .ov-f-serif{font-family:Georgia,Songti SC,serif}.rich-editor-mirror .ov-f-sans{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif}.rich-editor-mirror .ov-f-mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.rich-editor-mirror .ov-s-small{opacity:.8}.rich-editor-mirror .ov-s-large{-webkit-text-stroke:.5px currentColor}.rich-editor-mirror .ov-s-xlarge{-webkit-text-stroke:1px currentColor;color:var(--accent-2)}.rich-editor-textarea{position:relative;z-index:1;display:block;width:100%;min-height:500px;margin:0;padding:22px;resize:vertical;color:transparent;caret-color:var(--accent-2);border:0;background:transparent;outline:0;font:16px/30px Georgia,Songti SC,serif}.rich-editor-textarea::placeholder{color:var(--muted)}.rich-editor-textarea::selection{color:transparent;background:color-mix(in srgb,var(--accent) 30%,transparent)}.rich-editor-body.composing .rich-editor-textarea{color:var(--text)}.rich-editor-body.composing .rich-editor-mirror{visibility:hidden}.rich-editor-status{padding:8px 13px;display:flex;justify-content:space-between;gap:12px;color:var(--muted);border-top:1px solid var(--border);font-size:11px}.dedicated-editor-error{position:fixed;z-index:360;left:50%;bottom:24px;transform:translate(-50%);max-width:min(520px,calc(100vw - 32px));padding:10px 16px;color:#fff;border-radius:12px;background:var(--danger);box-shadow:0 12px 32px #32141940}.dedicated-preview{width:min(900px,100%);min-height:600px;margin:0 auto;padding:clamp(20px,5vw,64px);border:1px solid var(--border);border-radius:22px;background:var(--panel);box-shadow:0 18px 54px #483a2f14}.dedicated-preview .article-preview-cover{height:230px}.draft-drawer{position:fixed;z-index:420;top:68px;right:0;bottom:0;width:min(390px,92vw);padding:22px;border-left:1px solid var(--border);background:color-mix(in srgb,var(--panel) 97%,transparent);box-shadow:-18px 0 58px #1f141933;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.draft-drawer-head{margin-bottom:16px;display:flex;align-items:center;justify-content:space-between}.draft-drawer-head h2{margin:1px 0 0;font-family:Georgia,Songti SC,serif}.draft-drawer>input{margin-bottom:14px}.draft-list{display:grid;gap:8px;max-height:calc(100vh - 210px);overflow:auto}.draft-list>button{padding:13px;display:grid;gap:4px;text-align:left}.draft-list>button.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 9%,var(--panel-2))}.draft-list strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.draft-list span,.draft-empty{color:var(--muted);font-size:12px}.draft-empty{padding:35px 10px;text-align:center}.exit-prompt-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:600;display:grid;place-items:center;padding:18px;background:#19121694;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.exit-prompt{width:min(460px,100%);padding:30px;text-align:center;border:1px solid var(--border);border-radius:22px;background:var(--panel);box-shadow:0 28px 80px #140e1159}.exit-prompt-icon{display:grid;place-items:center;width:54px;height:54px;margin:0 auto 14px;color:var(--accent);border-radius:50%;background:color-mix(in srgb,var(--accent) 10%,transparent);font-size:26px}.exit-prompt h2{margin-bottom:6px;font-family:Georgia,Songti SC,serif}.exit-prompt p{margin:0 auto 24px;color:var(--muted)}.exit-prompt>div{display:flex;justify-content:center;flex-wrap:wrap;gap:8px}.article-inline-image{margin:28px 0}.article-inline-image img{display:block;max-width:100%;max-height:720px;margin:0 auto;border-radius:14px;box-shadow:0 16px 42px #251a1d1f}.article-inline-image figcaption{margin-top:8px;color:var(--muted);text-align:center;font-size:12px}.article-asset-loading{margin:20px 0;padding:28px;color:var(--muted);text-align:center;border:1px dashed var(--border);border-radius:12px}.article-attachment{width:100%;margin:20px 0;padding:14px 16px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;text-align:left}.article-attachment>span:first-child{display:grid;place-items:center;width:38px;height:38px;color:var(--accent-2);border-radius:10px;background:color-mix(in srgb,var(--accent) 10%,transparent);font-size:22px}.article-attachment>span:nth-child(2){display:grid}.article-attachment small{color:var(--muted)}.article-attachment em{color:var(--accent-2);font-size:12px;font-style:normal}.article-code{margin:25px 0;overflow:hidden;border:1px solid rgba(255,255,255,.08);border-radius:13px;background:#211d24;color:#eee7ec;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.article-code>span{display:block;padding:7px 12px;color:#b8aab3;border-bottom:1px solid rgba(255,255,255,.08);font-size:11px}.article-code pre{margin:0;padding:17px;overflow:auto}.article-code code{color:inherit;background:transparent}.article-table-wrap{margin:25px 0;overflow-x:auto}.article-table-wrap table{width:100%;border-collapse:collapse}.article-table-wrap th,.article-table-wrap td{padding:10px 12px;text-align:left;border:1px solid var(--border)}.article-table-wrap th{background:color-mix(in srgb,var(--accent) 8%,transparent)}.article-prose code{padding:2px 5px;border-radius:5px;background:color-mix(in srgb,var(--accent) 10%,transparent);font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.text-font-serif{font-family:Georgia,Songti SC,serif}.text-font-sans{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif}.text-font-mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.text-size-small{font-size:.82em}.text-size-large{font-size:1.28em}.text-size-xlarge{font-size:1.65em}:root[data-theme=dark] .article-page,:root[data-theme=dark] .blog-editor-page{background:radial-gradient(circle at 7% 2%,rgba(120,65,48,.22),transparent 26%),radial-gradient(circle at 94% 18%,rgba(112,72,91,.18),transparent 28%),linear-gradient(145deg,#181419,#211a20 55%,#17151d)}:root[data-theme=dark] .editor-main-column,:root[data-theme=dark] .editor-setting-card{background:#231d25d1}@media (max-width: 980px){.dedicated-editor-form{grid-template-columns:1fr}.editor-side-column{position:static;grid-template-columns:1fr 1fr}.dedicated-editor-head{align-items:flex-start}.dedicated-editor-actions{justify-content:flex-end;flex-wrap:wrap}}@media (max-width: 680px){.blog-floating-actions{right:16px;bottom:18px}.blog-create-fab{width:56px;height:56px}.blog-search-fab{width:43px;height:43px}.article-page,.blog-editor-page{min-height:calc(100vh - 58px);padding:16px 10px 52px}.dedicated-editor-head{top:var(--editor-nav-height, 58px);margin:-4px 0 12px;padding:11px;align-items:flex-start;border-radius:14px}.dedicated-editor-head .section-kicker{display:none}.dedicated-editor-head h1{font-size:19px}.dedicated-editor-actions{gap:5px}.dedicated-editor-actions button{padding:6px 8px;font-size:12px}.dedicated-editor-actions button:nth-child(3){display:none}.editor-main-column{padding:15px;border-radius:16px}.editor-side-column{grid-template-columns:1fr}.rich-editor-toolbar{max-height:none;overflow:visible}.rich-editor-textarea,.rich-editor-mirror{min-height:420px;padding:15px}.rich-editor-status{align-items:flex-end;flex-direction:column;gap:2px}.article-page-toolbar{align-items:flex-start}.article-page-toolbar>div{flex-direction:column}.article-reader-page .article-reader-cover{min-height:180px;height:180px}.article-reader-page .article-reader-content{padding:30px 20px 46px}.draft-drawer{top:58px}.exit-prompt{padding:24px 18px}}.blog-page{min-height:calc(100vh - 68px);padding:54px clamp(18px,5vw,72px) 80px;color:var(--text);background:radial-gradient(circle at 9% 4%,rgba(202,149,112,.2),transparent 27%),radial-gradient(circle at 92% 24%,rgba(158,116,128,.12),transparent 28%),linear-gradient(145deg,#f0ece5,#e9e3db 55%,#e6dfd7)}.blog-hero{width:min(1180px,100%);margin:0 auto 34px;display:flex;align-items:flex-end;justify-content:space-between;gap:30px}.blog-hero h1{max-width:760px;margin:3px 0 10px;color:#403830;font-family:Georgia,Songti SC,serif;font-size:clamp(32px,4.6vw,58px);line-height:1.15;letter-spacing:-.035em}.blog-hero>div>p:last-child{max-width:680px;margin:0;color:var(--muted);font-size:16px}.blog-create-button{flex:none;padding:12px 20px;color:#fff;border:0;border-radius:999px;background:linear-gradient(135deg,#c66d4c,#9c4a34);box-shadow:0 12px 28px #7d422b33;font-weight:650}.blog-create-button span{margin-right:4px;font-size:18px}.blog-toolbar{width:min(1180px,100%);margin:0 auto 24px;padding:10px;display:grid;grid-template-columns:minmax(220px,1fr) auto auto;align-items:center;gap:12px;border:1px solid var(--border);border-radius:16px;background:#f8f4edbf;box-shadow:0 12px 34px #483a2f0f;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.blog-search{position:relative;display:block}.blog-search>span:first-child{position:absolute;z-index:1;top:7px;left:12px;color:var(--muted);font-size:21px}.blog-search input{height:40px;margin:0;padding-left:38px;background:#ffffff6b}.blog-filters{display:flex;gap:4px;padding:3px;border-radius:12px;background:#715b4812}.blog-filters button{padding:6px 12px;border:0;background:transparent}.blog-filters button.active{color:var(--accent-2);background:var(--panel);box-shadow:0 3px 10px #47352914}.blog-count{padding-right:8px;color:var(--muted);font-size:13px;white-space:nowrap}.blog-notice,.blog-error{width:min(1180px,100%);margin:0 auto 18px;padding:10px 14px;border-radius:12px}.blog-notice{color:#326a4f;background:#4a91691a;border:1px solid rgba(74,145,105,.18)}.blog-error{color:var(--danger);background:color-mix(in srgb,var(--danger) 9%,transparent);border:1px solid color-mix(in srgb,var(--danger) 20%,transparent)}.article-grid{width:min(1180px,100%);margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr);gap:24px}.article-card{min-width:0;display:grid;grid-template-columns:180px minmax(0,1fr);overflow:hidden;border:1px solid var(--border);border-radius:22px;background:#f8f4edd6;box-shadow:0 16px 42px #483a2f14;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.article-card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--accent) 35%,var(--border));box-shadow:0 22px 52px #483a2f21}.article-cover,.article-reader-cover,.article-preview-cover{position:relative;overflow:hidden;color:#fff}.article-cover:after,.article-reader-cover:after,.article-preview-cover:after{content:"♡";position:absolute;right:-14px;bottom:-38px;color:#ffffff29;font-family:Georgia,serif;font-size:150px;transform:rotate(-12deg)}.tone-rose{background:linear-gradient(145deg,#a95f66,#713d4c)}.tone-sunset{background:linear-gradient(145deg,#c37655,#87482f)}.tone-lavender{background:linear-gradient(145deg,#777090,#51485f)}.tone-forest{background:linear-gradient(145deg,#557469,#334e47)}.tone-night{background:linear-gradient(145deg,#3d485d,#252b3b)}.article-cover{min-height:230px;padding:22px;display:flex;flex-direction:column;justify-content:space-between}.article-cover span,.article-reader-cover span,.article-preview-cover span{position:relative;z-index:1;width:fit-content;padding:4px 9px;border:1px solid rgba(255,255,255,.24);border-radius:999px;background:#ffffff1f;font-size:12px}.article-cover strong{position:relative;z-index:1;font-family:Georgia,Songti SC,serif;font-size:66px;line-height:1;opacity:.86}.article-card-body{min-width:0;padding:24px;display:flex;flex-direction:column}.article-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;color:var(--muted);font-size:12px}.article-status{padding:3px 8px;border-radius:999px}.article-status.published{color:#397256;background:#40835b1c}.article-status.draft{color:#8b6a36;background:#a87d391f}.article-card h2{margin:14px 0 8px;font-family:Georgia,Songti SC,serif;font-size:25px;line-height:1.25}.article-card-body>p{margin:0;color:var(--muted);display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3}.article-card-foot{margin-top:auto;padding-top:20px;display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted);font-size:12px}.article-card-tags{flex:1;display:flex;justify-content:center;flex-wrap:wrap;gap:6px}.article-card-tags span{padding:3px 8px;color:var(--accent-2);border:1px solid color-mix(in srgb,var(--accent) 18%,var(--border));border-radius:999px;background:color-mix(in srgb,var(--accent) 8%,transparent);white-space:nowrap}.article-open{color:var(--accent-2);font-weight:600}.blog-empty{width:min(1180px,100%);min-height:330px;margin:0 auto;padding:60px 20px;display:grid;place-items:center;align-content:center;text-align:center;border:1px dashed color-mix(in srgb,var(--border) 75%,transparent);border-radius:22px;color:var(--muted);background:#f8f4ed6b}.blog-empty>span{color:var(--accent);font-size:36px}.blog-empty h2{margin:8px 0 2px;color:var(--text);font-family:Georgia,Songti SC,serif}.blog-empty p{margin:0 0 18px}.blog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:500;padding:28px;display:grid;place-items:center;background:#1c161994;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px)}.blog-editor{width:min(980px,100%);max-height:calc(100vh - 56px);display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--border);border-radius:24px;background:var(--panel);box-shadow:0 34px 100px #19111352}.blog-editor-head{padding:20px 24px 15px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--border)}.blog-editor-head h2{margin:2px 0 0;font-family:Georgia,Songti SC,serif}.blog-editor-head-actions{display:flex;align-items:center;gap:8px}.blog-editor-head-actions>button:not(.modal-close).active{color:var(--accent-2);background:color-mix(in srgb,var(--accent) 10%,transparent)}.blog-editor-form,.article-preview{flex:1;overflow:auto;padding:22px 24px}.blog-field{position:relative;display:block;margin-bottom:17px}.blog-field>span,.cover-tone-picker legend{display:block;margin-bottom:6px;color:var(--text);font-size:13px;font-weight:650}.blog-field b{color:var(--accent)}.blog-field input,.blog-field textarea,.blog-field select{width:100%;margin:0;padding:11px 12px;color:var(--text);border:1px solid var(--border);border-radius:11px;background:var(--panel-2);outline:none;font:inherit}.blog-field input:focus,.blog-field textarea:focus,.blog-field select:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent)}.blog-field textarea{resize:vertical}.blog-field>small{display:block;margin-top:4px;color:var(--muted);text-align:right;font-size:11px}.blog-title-field input{padding:12px 14px;font-family:Georgia,Songti SC,serif;font-size:22px}.blog-editor-settings{display:grid;grid-template-columns:minmax(170px,.7fr) minmax(240px,1.3fr);gap:14px}.cover-tone-picker{margin:-1px 0 18px;padding:0;border:0}.cover-tone-picker button{width:38px;height:38px;margin-right:8px;padding:4px;border:2px solid transparent;border-radius:50%;background:transparent}.cover-tone-picker button span{display:block;width:100%;height:100%;border-radius:50%}.cover-tone-picker button.rose span{background:#8e4c59}.cover-tone-picker button.sunset span{background:#a75c3e}.cover-tone-picker button.lavender span{background:#615975}.cover-tone-picker button.forest span{background:#446258}.cover-tone-picker button.night span{background:#30394b}.cover-tone-picker button.active{border-color:var(--accent)}.blog-content-field{position:relative}.blog-content-field>span{margin-bottom:0}.editor-tools{position:absolute;top:-5px;right:0;display:flex;gap:4px}.editor-tools button{padding:4px 8px;font-size:11px}.blog-content-field textarea{min-height:290px;margin-top:9px;line-height:1.8}.blog-editor-error{margin:0 24px 12px;padding:9px 12px;color:var(--danger);border-radius:10px;background:color-mix(in srgb,var(--danger) 9%,transparent)}.blog-editor-foot{padding:14px 24px;display:flex;align-items:center;justify-content:space-between;gap:14px;border-top:1px solid var(--border);color:var(--muted);font-size:12px}.blog-editor-foot>div{display:flex;gap:8px}.article-preview{max-width:760px;width:100%;margin:0 auto}.article-preview-cover{height:150px;margin-bottom:24px;padding:18px;border-radius:16px}.article-preview-meta{color:var(--muted);font-size:12px}.article-preview>h1,.article-reader-content>h1{margin:8px 0 12px;font-family:Georgia,Songti SC,serif;font-size:clamp(34px,5vw,56px);line-height:1.15}.article-lead{margin:0 0 22px;color:var(--muted);font-family:Georgia,Songti SC,serif;font-size:18px;line-height:1.75}.article-prose{color:var(--text);font-family:Georgia,Songti SC,serif;font-size:16px;line-height:1.95}.article-prose h1{margin-top:32px;font-size:28px}.article-prose h2{margin:30px 0 10px;font-size:23px}.article-prose p{margin:0 0 20px}.article-prose blockquote{margin:24px 0;padding:12px 20px;color:var(--muted);border-left:3px solid var(--accent);background:color-mix(in srgb,var(--accent) 7%,transparent)}.article-prose li{margin:6px 0}.article-reader-overlay{align-items:start;overflow:auto}.article-reader{position:relative;width:min(860px,100%);overflow:hidden;border:1px solid var(--border);border-radius:24px;background:var(--panel);box-shadow:0 34px 100px #19111352}.article-reader-close{position:absolute;z-index:2;top:14px;right:14px;color:#fff!important;border-color:#ffffff4d!important;background:#1914183d!important}.article-reader-cover{height:230px;padding:26px}.article-reader-content{padding:38px clamp(24px,7vw,72px) 54px}.article-byline{margin:0 0 32px;color:var(--muted);font-size:13px}.article-tags{margin-top:34px;display:flex;flex-wrap:wrap;gap:8px}.article-tags span{padding:4px 9px;color:var(--accent-2);border-radius:999px;background:color-mix(in srgb,var(--accent) 9%,transparent);font-size:12px}.article-manage{margin-top:36px;padding-top:20px;display:flex;justify-content:flex-end;gap:8px;border-top:1px solid var(--border)}:root[data-theme=dark] .blog-page{background:radial-gradient(circle at 9% 4%,rgba(120,65,48,.24),transparent 27%),radial-gradient(circle at 92% 24%,rgba(112,72,91,.2),transparent 28%),linear-gradient(145deg,#181419,#211a20 55%,#17151d)}:root[data-theme=dark] .blog-hero h1{color:var(--text)}:root[data-theme=dark] .blog-toolbar,:root[data-theme=dark] .article-card,:root[data-theme=dark] .blog-empty{background:#231d25c7}:root[data-theme=dark] .blog-search input{background:#342a35cc}:root[data-theme=dark] .blog-filters{background:#ffffff0d}@media (max-width: 920px){.article-grid{grid-template-columns:1fr}.article-card{grid-template-columns:160px minmax(0,1fr)}}@media (max-width: 680px){.blog-page{min-height:calc(100vh - 58px);padding:30px 12px 58px}.blog-hero{align-items:stretch;flex-direction:column;gap:18px}.blog-hero h1{font-size:36px}.blog-create-button{align-self:flex-start}.blog-toolbar{grid-template-columns:1fr}.blog-count{display:none}.blog-filters{justify-content:space-between}.blog-filters button{flex:1}.article-card{grid-template-columns:1fr}.article-cover{min-height:140px}.article-card-body{min-height:245px;padding:20px}.blog-overlay{padding:0;align-items:stretch}.blog-editor{max-height:100vh;border:0;border-radius:0}.blog-editor-head{padding:15px 14px}.blog-editor-head .section-kicker{display:none}.blog-editor-head h2{margin:0;font-size:20px}.blog-editor-form,.article-preview{padding:18px 14px}.blog-editor-settings{grid-template-columns:1fr;gap:0}.blog-editor-foot{padding:12px 14px;align-items:flex-end}.blog-editor-foot>span{max-width:110px}.blog-editor-foot button{padding-inline:11px}.article-reader-overlay{padding:10px}.article-reader{border-radius:18px}.article-reader-cover{height:160px}.article-reader-content{padding:28px 20px 38px}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}html{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--accent) 58%,var(--muted)) var(--bg)}*::-webkit-scrollbar{width:11px;height:11px}*::-webkit-scrollbar-track{background:var(--bg)}*::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--accent) 56%,var(--muted));border:3px solid var(--bg);border-radius:999px}*::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--accent) 76%,var(--muted))}body{background:radial-gradient(circle at 12% 8%,rgba(217,184,151,.32),transparent 32%),radial-gradient(circle at 88% 22%,rgba(197,144,111,.2),transparent 30%),linear-gradient(145deg,#f2eee7,#ece7de 52%,#e8e2da);background-attachment:fixed;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-size:15px;line-height:1.6}.center{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.card{background:var(--panel);border:1px solid var(--border);border-radius:20px;padding:20px;box-shadow:0 16px 48px #6f414e14;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}h1,h2,h3{margin:0 0 12px;font-weight:600}.muted{color:var(--muted);font-size:13px}.error{color:var(--danger);font-size:13px;margin:8px 0}.ok{color:#2ecc71;font-size:13px;margin:8px 0}input{width:100%;background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:12px;padding:10px 12px;font-size:14px;margin-bottom:10px;outline:none}input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #c86f821f}button{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:9px 16px;font-size:14px;cursor:pointer;transition:.15s}button:hover:not(:disabled){border-color:var(--accent)}button:focus-visible{outline:2px solid rgba(200,111,130,.72);outline-offset:2px}button.primary{background:linear-gradient(135deg,#d9798d,#b96076);border-color:transparent;color:#fff;box-shadow:0 8px 18px #bd667b2e}button.primary:hover:not(:disabled){background:linear-gradient(135deg,#ce6e83,#a95368)}button.block{width:100%;margin-top:6px}button:disabled{opacity:.6;cursor:default}.row{display:flex;gap:8px}.row input{margin-bottom:0;flex:1}.row button{white-space:nowrap}.auth-wrap{position:relative;overflow:hidden;background:radial-gradient(circle at 18% 18%,rgba(255,190,205,.68),transparent 34%),radial-gradient(circle at 82% 74%,rgba(255,222,190,.62),transparent 32%),linear-gradient(145deg,#fff9f5,#fdeef2 52%,#f7eaf1)}.auth-wrap:before,.auth-wrap:after{content:"♡";position:absolute;color:#bf64791a;font-family:Georgia,serif;pointer-events:none}.auth-wrap:before{top:4%;left:7%;font-size:180px;transform:rotate(-12deg)}.auth-wrap:after{right:6%;bottom:2%;font-size:240px;transform:rotate(14deg)}.auth-card{width:420px;max-width:100%;padding:34px;position:relative;z-index:1;border-radius:26px;box-shadow:0 28px 80px #733d4e24}.auth-card h1{margin:0 0 6px;color:#573640;font-family:Georgia,Songti SC,serif;font-size:32px;text-align:center}.auth-card>.muted{text-align:center;margin-top:-6px;margin-bottom:16px}.auth-heart{color:#d27a8d;font-size:42px;line-height:1;text-align:center}.auth-eyebrow{margin:8px 0 2px;color:#b76d7b;font-size:10px;font-weight:700;letter-spacing:.2em;text-align:center}.tabs{display:flex;gap:8px;margin-bottom:16px;padding:5px;background:#ffeff1b8;border:1px solid rgba(190,112,129,.12);border-radius:14px}.tab{flex:1;border-color:transparent;background:transparent}.tab.active{background:#ffffffeb;border-color:#bf687b29;color:#b65f73;box-shadow:0 6px 16px #80495714}.auth-card>button.primary{width:100%;margin-top:4px}.lobby{min-height:calc(100vh - 68px);background:radial-gradient(circle at 90% 4%,rgba(255,224,194,.52),transparent 29%),linear-gradient(155deg,#fff9f5e0,#f9ecf2eb)}.topbar{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid var(--border)}.topbar h1{margin:0;font-size:20px}.topbar-right{display:flex;align-items:center;gap:12px}.lobby-main{max-width:920px;margin:0 auto;padding:40px 24px 64px;display:flex;flex-direction:column;gap:16px}.watch-hero{padding:18px 8px 14px}.watch-hero h1{margin:2px 0 6px;color:#50343d;font-family:Georgia,Songti SC,serif;font-size:clamp(34px,5vw,50px)}.watch-hero>p:last-child{margin:0;color:#876b74}.code{color:var(--accent);letter-spacing:1px}.room-list{list-style:none;margin:0;padding:0}.room-list li{display:flex;align-items:center;justify-content:space-between;padding:12px;border:1px solid var(--border);border-radius:14px;margin-bottom:8px;cursor:pointer;background:#fff9f694;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.room-list li:hover{border-color:var(--accent);transform:translateY(-1px);box-shadow:0 8px 20px #7a475614}.room-name{font-weight:600}.room-id{color:var(--accent);font-family:monospace}.room{min-height:calc(100vh - 52px);display:flex;flex-direction:column;min-width:0;max-width:100%;background:linear-gradient(145deg,#fff8f4eb,#f7ebf1f0)}.room-header{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;border-bottom:1px solid var(--border);background:#ffffff80;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.room-header h2{margin:0 0 2px;font-size:18px}.room-body{flex:1;display:grid;grid-template-columns:1fr 320px;gap:16px;padding:16px 24px;min-height:0;min-width:0;max-width:100%}@media (max-width: 860px){.room-body{grid-template-columns:1fr}}.main-col{min-width:0;display:flex;flex-direction:column;gap:16px}.player-box{position:relative;width:100%;min-width:0;max-width:100%;background:#000;border-radius:18px;box-shadow:0 18px 50px #3e222b2e;overflow:hidden;aspect-ratio:16 / 9;max-height:72vh;touch-action:pan-y}.player-box:fullscreen,.player-box.is-fullscreen{width:100vw;height:100vh;max-height:none;aspect-ratio:auto;border-radius:0}.player-box.mobile-landscape-fullscreen{position:absolute;top:50%;left:50%;width:100dvh;height:100dvw;max-width:none;max-height:none;transform:translate(-50%,-50%) rotate(90deg);transform-origin:center}.player{width:100%;height:100%;display:block}.player-info-bar{position:absolute;z-index:2;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px 34px;color:#fff;background:linear-gradient(180deg,rgba(0,0,0,.68),transparent);pointer-events:none}.player-media-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;text-shadow:0 1px 3px rgba(0,0,0,.64)}.player-status{display:inline-flex;flex:none;align-items:center;gap:6px;color:#ffffffd1;font-size:11px;white-space:nowrap}.player-status i{width:7px;height:7px;border-radius:50%;background:#8ee6b3;box-shadow:0 0 0 3px #8ee6b326}.player-status.has-error i{background:#ff9b91;box-shadow:0 0 0 3px #ff9b9126}.player-notice{position:absolute;z-index:4;top:46px;left:50%;max-width:min(86%,420px);padding:7px 12px;transform:translate(-50%);border:1px solid rgba(255,255,255,.16);border-radius:999px;background:#141116bf;color:#fffffff2;box-shadow:0 8px 20px #0003;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}.player-danmaku-stack{position:absolute;z-index:3;top:48px;left:16px;right:16px;display:flex;flex-direction:column;align-items:flex-start;gap:6px;pointer-events:none}.player-danmaku{display:inline-flex;align-items:baseline;gap:6px;max-width:min(80%,560px);padding:6px 10px;border:1px solid rgba(255,255,255,.16);border-radius:999px;background:#181319bd;color:#fffffff5;box-shadow:0 5px 16px #00000040;font-size:12px;line-height:1.3;animation:player-danmaku-fade 5s ease forwards}.player-danmaku b{flex:0 0 auto;color:#ffc1d2}.player-danmaku span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@keyframes player-danmaku-fade{0%,84%{opacity:1}to{opacity:0}}.player-gesture-hint,.player-speed-hint{position:absolute;z-index:5;top:50%;left:50%;min-width:86px;padding:9px 14px;transform:translate(-50%,-50%);border:1px solid rgba(255,255,255,.18);border-radius:12px;background:#141116cc;color:#fff;box-shadow:0 10px 28px #0000004d;font-size:14px;font-variant-numeric:tabular-nums;text-align:center;pointer-events:none}.player-speed-hint{top:calc(50% + 45px);min-width:148px;color:#ffcad8;font-size:12px}.player-resume{position:absolute;z-index:4;top:50%;left:50%;transform:translate(-50%,-50%);border-color:#ffffff38;border-radius:999px;background:#181319c7;color:#fff;box-shadow:0 8px 24px #00000042}.player-error-overlay{position:absolute;z-index:5;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px;color:#fff;background:#120e13c7;text-align:center}.player-controls{position:absolute;z-index:6;right:0;bottom:0;left:0;padding:32px 14px 12px;min-width:0;background:linear-gradient(0deg,rgba(7,6,8,.88),rgba(7,6,8,.54) 58%,transparent);opacity:0;transform:translateY(7px);pointer-events:none;transition:opacity .18s ease,transform .18s ease}.player-controls.visible{opacity:1;transform:translateY(0);pointer-events:auto}.player-chat-tray{flex:1 1 0;min-width:0;max-width:460px;margin:0 7px}.player-chat-composer{display:flex;align-items:center;gap:7px;min-width:0}.player-chat-composer input{flex:1;min-width:0;min-height:32px;margin:0;padding:6px 10px;border:1px solid rgba(255,255,255,.18);border-radius:9px;background:#ffffff1a;color:#fff;font-size:12px;outline:none}.player-chat-composer input::placeholder{color:#ffffff9e}.player-chat-composer input:focus{border-color:#ffb6cfcc;box-shadow:0 0 0 2px #de849b29}.player-chat-composer .primary{flex:0 0 auto;min-height:32px;margin:0;padding:5px 12px;border-radius:9px;font-size:12px}.player-timeline{position:relative;height:14px;display:flex;align-items:center;margin:0 3px 5px}.player-buffered{position:absolute;left:0;right:auto;height:3px;border-radius:999px;background:#ffffff61;pointer-events:none}.player-progress,.player-volume{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:100%;height:3px;margin:0;border:0;border-radius:999px;background:#fff3;cursor:pointer;accent-color:#de849b;outline:none}.player-progress::-webkit-slider-thumb,.player-volume::-webkit-slider-thumb{width:13px;height:13px;-moz-appearance:none;appearance:none;-webkit-appearance:none;border:2px solid #fff;border-radius:50%;background:#de849b;box-shadow:0 1px 5px #00000061}.player-progress::-moz-range-thumb,.player-volume::-moz-range-thumb{width:10px;height:10px;border:2px solid #fff;border-radius:50%;background:#de849b;box-shadow:0 1px 5px #00000061}.player-progress:disabled{cursor:default;opacity:.5}.player-control-row,.player-control-group{display:flex;align-items:center;gap:7px;min-width:0}.player-control-row{justify-content:space-between}.player-control-right{justify-content:flex-end}button.player-icon-button,button.player-text-button{display:inline-flex;align-items:center;justify-content:center;min-width:30px;min-height:30px;margin:0;padding:4px 6px;border:1px solid transparent;border-radius:8px;background:transparent;color:#fff;font-size:17px;line-height:1;text-shadow:0 1px 2px rgba(0,0,0,.28)}button.player-icon-button:hover,button.player-icon-button.active,button.player-text-button:hover,button.player-text-button.active{border-color:#fff3;background:#ffffff24}button.player-play-button{min-width:34px;min-height:34px;border-radius:50%;background:#de849b;box-shadow:0 3px 12px #de849b5c;font-size:15px}button.player-play-button:hover{background:#ed96ab}button.player-icon-button small{margin-left:-1px;font-size:9px;font-weight:700}button.player-icon-button svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}button.player-text-button{min-width:auto;padding:5px 7px;font-size:11px}.player-time,.player-queue-position{color:#ffffffe6;font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap}.player-time em{margin:0 2px;color:#ffffff6b;font-style:normal}.player-queue-position{color:#ffffffad}.player-volume-menu,.player-rate-menu{position:relative;display:flex;align-items:center}.player-volume-popover,.player-rate-popover{position:absolute;bottom:calc(100% + 9px);right:0;border:1px solid rgba(255,255,255,.18);border-radius:12px;background:#171319f0;box-shadow:0 10px 28px #00000052;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.player-volume-popover{display:flex;flex-direction:column;align-items:center;gap:7px;width:42px;padding:10px 8px 7px}.player-volume-slider{position:relative;width:24px;height:108px;flex:0 0 108px}.player-volume-slider:before,.player-volume-slider:after{position:absolute;left:50%;width:4px;border-radius:999px;content:"";transform:translate(-50%)}.player-volume-slider:before{top:0;bottom:0;background:#ffffff3d}.player-volume-slider:after{bottom:0;height:var(--volume-level);background:#de849b}.player-volume-input{position:absolute;top:50%;left:50%;z-index:2;width:108px;height:24px;margin:0;opacity:0;transform:translate(-50%,-50%) rotate(-90deg)}.player-volume-thumb{position:absolute;left:50%;bottom:clamp(6px,var(--volume-level),calc(100% - 6px));z-index:1;width:13px;height:13px;border:2px solid #fff;border-radius:50%;background:#de849b;box-shadow:0 1px 5px #00000061;transform:translate(-50%,50%)}.player-volume-popover span{color:#ffffffd1;font-size:10px;font-variant-numeric:tabular-nums}.player-rate-popover{display:grid;grid-template-columns:minmax(64px,1fr);gap:4px;width:78px;padding:7px}.player-rate-popover button{min-height:29px;padding:3px 5px;border:1px solid transparent;border-radius:7px;background:transparent;color:#ffffffd1;font-size:11px}.player-rate-popover button:hover,.player-rate-popover button.active{border-color:#ffb8cd57;background:#de849b47;color:#fff}.player-select-wrap select{min-height:30px;border:1px solid rgba(255,255,255,.16);border-radius:8px;background:#ffffff1a;color:#fff;padding:3px 5px;font-size:11px;outline:none}.player-select-wrap option{color:#403a34;background:#fff}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.player-placeholder{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:var(--muted)}.player-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#00000073;cursor:pointer}.player-overlay div{background:var(--accent);color:#fff;padding:12px 20px;border-radius:10px;font-size:16px}.sync-badge{position:absolute;top:12px;left:12px;background:#0009;border:1px solid var(--accent);color:var(--accent);font-size:12px;padding:4px 10px;border-radius:999px;pointer-events:none}.sync-badge.warn{border-color:#f1c40f;color:#f1c40f}.conn-banner{background:#f1c40f22;color:#f1c40f;border-bottom:1px solid #f1c40f;text-align:center;padding:8px 16px;font-size:13px}iframe.player{border:0;background:#000}@media (max-width: 620px){.player-info-bar{padding:10px 12px 28px}.player-status{display:none}.player-controls{padding:26px 8px 8px}.player-control-row{gap:3px}.player-control-group{gap:2px}.player-queue-position,.player-text-button{display:none!important}.player-volume-menu .player-icon-button,.player-rate-menu .player-text-button{display:inline-flex!important}.player-volume-popover,.player-rate-popover{bottom:calc(100% + 7px)}.player-time{margin-left:2px;font-size:10px}.player-select-wrap select{min-height:28px;padding:2px 3px}button.player-icon-button{min-width:28px;min-height:28px}.player-notice{top:37px}.player-danmaku-stack{top:40px;left:10px;right:10px}.player-danmaku{max-width:88%;padding:5px 8px;font-size:11px}.player-chat-tray{min-width:72px;margin:0 3px}.player-chat-composer{gap:4px}.player-chat-composer input{min-height:28px;padding:4px 7px;font-size:11px}.player-chat-composer .primary{min-height:28px;padding:4px 8px;font-size:11px}}.sidebar{display:flex;flex-direction:column;gap:16px}.sidebar h3{font-size:15px}.member-list{list-style:none;margin:0;padding:0}.member-list li{display:flex;align-items:center;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--border);gap:8px}.member-list li.host{color:var(--accent);font-weight:600}.member-actions{display:flex;gap:6px}button.mini{padding:3px 8px;font-size:12px;border-radius:6px}button.mini.danger{color:var(--danger);border-color:var(--danger)}.chat-card{display:flex;flex-direction:column}.chat-messages{height:180px;overflow-y:auto;display:flex;flex-direction:column;gap:6px;margin-bottom:10px;padding:12px;background:#fffaf799;border:1px solid rgba(184,111,126,.12);border-radius:12px}.chat-msg{line-height:1.4;word-break:break-word}.chat-user{color:var(--accent);font-weight:600;margin-right:6px}.chat-text{color:var(--text)}.queue-list{list-style:none;margin:0;padding:0}.queue-list li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 0;border-bottom:1px solid var(--border)}.queue-list li.current .queue-title{color:var(--accent);font-weight:600}.queue-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.media-list{list-style:none;margin:0;padding:0}.media-list li{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border)}.media-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status{font-size:12px;padding:2px 8px;border-radius:999px;white-space:nowrap}.status.ready{color:#2ecc71;border:1px solid #2ecc71}.status.processing{color:#f1c40f;border:1px solid #f1c40f}.status.error{color:var(--danger);border:1px solid var(--danger)}.file-input{padding:8px}.file-picker{width:100%;min-width:0;display:flex;align-items:center;gap:10px;margin-bottom:10px;padding:7px;background:var(--panel-2);border:1px solid var(--border);border-radius:13px;transition:border-color .15s,box-shadow .15s}.file-picker:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 13%,transparent)}.file-picker-native{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.file-picker .file-picker-button{flex:0 0 auto;min-height:36px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:7px 12px;color:var(--accent-2);background:color-mix(in srgb,var(--panel) 82%,var(--accent) 18%);border-color:color-mix(in srgb,var(--border) 68%,var(--accent) 32%);border-radius:9px;font-weight:600}.file-picker .file-picker-button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.file-picker-name{min-width:0;overflow:hidden;color:var(--muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.file-picker-name.selected{color:var(--text)}.file-picker.disabled{opacity:.64}button.danger{color:var(--danger);border-color:var(--danger)}button:disabled{opacity:.5;cursor:not-allowed}.header-actions{display:flex;align-items:center;gap:8px}.room-member-avatars{display:flex;align-items:center;min-width:0;padding-left:5px}.room-member-avatar{display:inline-flex;margin-left:-6px;border:2px solid rgba(255,255,255,.72);border-radius:50%;box-shadow:0 2px 8px #41202a21}.room-member-avatar:first-child{margin-left:0}.room-member-avatar .profile-avatar{border:0}.header-actions button{white-space:nowrap}.partner-card{display:flex;align-items:center;justify-content:space-between}.partner-head{display:flex;align-items:center;gap:12px;cursor:pointer;flex:1;min-width:0}.avatar{width:44px;height:44px;border-radius:50%;background:var(--panel-2);border:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:600;color:var(--muted);flex-shrink:0}.avatar.on{border-color:#2ecc71;color:#2ecc71}.partner-name{font-weight:600}.section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.section-head h2{margin:0}.room-list li{cursor:default}.room-main{flex:1;min-width:0;cursor:pointer}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#4b2b3557;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.modal{background:var(--panel);border:1px solid var(--border);border-radius:22px;padding:24px;width:390px;max-width:100%;box-shadow:0 24px 70px #5b2f3d29}.modal h3{margin-top:0}.pm-modal{display:flex;flex-direction:column;height:420px;max-height:80vh}.pm-modal .chat-messages{flex:1;height:auto}.chat-msg.mine{text-align:right}.chat-msg.mine .chat-user{color:var(--accent-2)}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-shell>main,.app-shell>.auth-wrap{flex:1 0 auto}.auth-app-shell .auth-wrap{min-height:calc(100vh - 54px)}.site-footer{min-height:54px;padding:15px 20px;display:flex;align-items:center;justify-content:center;flex-direction:column;flex-wrap:wrap;gap:8px;color:var(--muted);border-top:1px solid var(--border);background:color-mix(in srgb,var(--panel) 92%,transparent);font-size:12px;text-align:center}.site-filings{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px 18px}.public-security-filing{display:inline-flex;align-items:center;gap:5px}.public-security-filing img{width:18px;height:18px;object-fit:contain}.footer-admin-login{padding:5px 12px;color:var(--muted);border-color:color-mix(in srgb,var(--accent) 18%,var(--border));border-radius:999px;background:transparent;font-size:11px}.footer-admin-login:hover{color:var(--accent-2);background:color-mix(in srgb,var(--accent) 7%,transparent)}.site-footer a{color:inherit;text-decoration:none}.site-footer a:hover{color:var(--accent-2);text-decoration:underline}.site-footer a:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}.auth-guest-button{width:100%;margin-top:8px;color:var(--muted);border-color:transparent;background:transparent}.auth-guest-button:hover{color:var(--accent-2);background:color-mix(in srgb,var(--accent) 7%,transparent)}.message-wall-page{min-height:calc(100vh - 68px)}.message-wall-hero{width:min(980px,100%);margin-inline:auto}.message-wall-content{width:min(980px,100%);margin-inline:auto;grid-template-columns:1fr}.site-nav{min-height:68px;padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:20px;position:sticky;top:0;z-index:300;background:#fff9f7e0;border-bottom:1px solid rgba(183,109,123,.16);box-shadow:0 8px 28px #663a470f;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.site-nav.compact{min-height:52px}.site-nav-left,.site-nav-right,.nav-links{display:flex;align-items:center;gap:10px}.brand-button,.nav-links button,.nav-logout{background:transparent;border-color:transparent}.brand-button{color:#633d49;font-family:Georgia,Songti SC,serif;font-size:20px;font-weight:700;padding-left:0;white-space:nowrap}.brand-button,.brand-button:hover,.brand-button:active{border:0;outline:0;background:transparent;box-shadow:none}.brand-button:focus-visible{outline:0;color:var(--accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}.nav-links button.active{color:#b75f73;background:#d3778b1a;border-color:#bf687b2b}.nav-links button{white-space:nowrap}@media (min-width: 641px) and (max-width: 820px){.site-nav .mobile-menu{display:inline-flex}.nav-links{display:none;position:absolute;top:66px;left:24px;flex-direction:column;align-items:stretch;width:150px;padding:8px;background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:0 16px 38px #28232326}.nav-links.open{display:flex}}.nav-user{color:#80666f;font-size:13px;white-space:nowrap}.mobile-menu{display:none;background:transparent;color:#684650}.site-nav .friend-item{width:100%;border:0;background:transparent;text-align:left}.site-nav .friend-main,.site-nav .friend-name,.site-nav .friend-last{display:block}.home-page{min-height:calc(100vh - 68px);padding:52px 24px 72px;color:#3c2930;background:radial-gradient(circle at 14% 7%,rgba(255,207,215,.75),transparent 32%),radial-gradient(circle at 90% 24%,rgba(255,228,199,.72),transparent 30%),linear-gradient(145deg,#fff8f4,#fff0f3 48%,#f8eef4)}.home-hero,.home-section,.home-two-column{width:min(1120px,100%);margin-left:auto;margin-right:auto}.home-hero{padding:30px 8px 42px}.home-hero h1{margin:4px 0 10px;font-family:Georgia,Songti SC,serif;font-size:clamp(34px,6vw,58px);color:#4b3039}.home-hero>p:last-child{color:#80666e;font-size:16px}.eyebrow,.section-kicker{color:#b76d7b;font-size:11px;font-weight:700;letter-spacing:.18em}.home-section{padding:26px;background:#ffffffad;border:1px solid rgba(189,119,133,.16);border-radius:24px;box-shadow:0 18px 60px #6f414e17;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.home-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px}.home-section-head h2{margin:3px 0 0;color:#50353d;font-family:Georgia,Songti SC,serif;font-size:25px}.section-note{color:#987983;font-size:13px}.timer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px}.timer-card{padding:20px;min-height:190px;border-radius:18px;color:#543840;background:linear-gradient(145deg,#ffeef1f2,#fffcf7f0);border:1px solid rgba(199,123,140,.17);transition:transform .2s ease,box-shadow .2s ease}.timer-card.countdown{background:linear-gradient(145deg,#fff4e2f5,#fff7f4f0)}.timer-card:hover{transform:translateY(-2px);box-shadow:0 12px 30px #8a4e5d1a}.timer-card{cursor:pointer}.timer-card.active{border-color:color-mix(in srgb,var(--accent) 50%,transparent);box-shadow:0 12px 30px #7448331f,0 0 0 3px color-mix(in srgb,var(--accent) 10%,transparent)}.timer-card-top,.timer-actions,.message-meta,.message-compose-footer{display:flex;align-items:center;justify-content:space-between;gap:8px}.timer-tag{color:#ae6675;font-size:12px}.timer-actions button,.timer-edit-button,.message-note button,.photo-caption button{padding:4px 8px;color:#9b6974;background:transparent;border:0;font-size:12px}.timer-card h3{margin:14px 0 2px;color:#543840}.timer-status,.timer-anchor{margin:0;color:#9a7b83;font-size:12px}.timer-value{display:flex;align-items:baseline;gap:7px;margin:8px 0}.timer-value strong{color:#b75f73;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:clamp(24px,4vw,34px)}.timer-value span{color:#83636b}.timer-form{display:grid;grid-template-columns:minmax(180px,1fr) 120px minmax(205px,.8fr) auto auto;gap:10px;margin-top:18px}.home-page input,.home-page select,.home-page textarea{width:100%;margin:0;padding:11px 13px;color:#503941;background:#ffffffbd;border:1px solid rgba(180,110,125,.23);border-radius:12px;outline:none;font:inherit}.home-page input:focus,.home-page select:focus,.home-page textarea:focus{border-color:#d78b9b;box-shadow:0 0 0 3px #d78b9b1f}.home-page button{color:#66444d;background:#ffffff9e;border-color:#b570803d}.home-page button.romantic-primary{color:#fff;background:linear-gradient(135deg,#d9798d,#bd667b);border-color:transparent;box-shadow:0 8px 18px #bd667b33;white-space:nowrap}.home-two-column{width:min(1120px,100%);display:grid;grid-template-columns:minmax(0,1fr);gap:18px;margin-top:18px}.home-two-column .home-section{width:100%;min-width:0}.message-section textarea{min-height:82px;resize:vertical}.danmaku-stage{position:relative;height:300px;overflow:hidden;margin-bottom:14px;background:linear-gradient(90deg,color-mix(in srgb,var(--panel-2) 45%,transparent),transparent 12% 88%,color-mix(in srgb,var(--panel-2) 45%,transparent)),color-mix(in srgb,var(--panel-2) 55%,transparent);border:1px dashed color-mix(in srgb,var(--border) 78%,transparent);border-radius:17px}.danmaku-stage:before,.danmaku-stage:after{content:"";position:absolute;left:5%;right:5%;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--border) 45%,transparent),transparent)}.danmaku-stage:before{top:34%}.danmaku-stage:after{top:68%}.danmaku-item{position:absolute;top:50%;left:100%;z-index:1;width:max-content;max-width:none;display:inline-flex;align-items:baseline;gap:12px;padding:8px 14px!important;color:var(--text)!important;background:color-mix(in srgb,var(--panel) 80%,transparent)!important;border:1px solid color-mix(in srgb,var(--border) 72%,transparent)!important;border-radius:999px!important;box-shadow:0 8px 24px #4a392d14;white-space:nowrap;animation:danmaku-flow 18s linear forwards}.danmaku-item span{font-family:Georgia,Songti SC,serif;font-size:17px}.danmaku-item small{color:var(--muted);font-size:11px}.danmaku-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:var(--muted);font-size:13px}@keyframes danmaku-flow{0%{transform:translate3d(0,-50%,0)}to{transform:translate3d(calc(-100% - 1200px),-50%,0)}}.message-compose-footer{margin-top:10px}.message-compose-footer span{color:#a1848b;font-size:12px}.message-list{display:flex;flex-direction:column;gap:10px;max-height:440px;overflow:auto;margin-top:18px;padding-right:4px}.message-note{padding:15px;background:#fff8f2b8;border:1px solid rgba(189,119,133,.14);border-radius:14px}.message-meta span{color:#a0878e;font-size:11px}.message-note p{margin:8px 0 2px;white-space:pre-wrap;overflow-wrap:anywhere}.message-note .text-danger,.home-page button.danger{color:#bd536a}.empty-panel,.photo-empty{padding:34px 18px;color:#a1848c;text-align:center;border:1px dashed rgba(181,112,128,.3);border-radius:16px}.photo-stage{position:relative;overflow:hidden;aspect-ratio:4 / 3;background:#eadde0;border-radius:18px}.photo-stage>img{width:100%;height:100%;object-fit:contain;display:block}.photo-arrow{position:absolute;top:50%;width:38px;height:38px;padding:0;transform:translateY(-50%);color:#fff!important;background:#38232a7a!important;border:0!important;border-radius:50%;font-size:28px}.photo-arrow.prev{left:12px}.photo-arrow.next{right:12px}.photo-caption{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:24px 14px 10px;color:#fff;background:linear-gradient(transparent,#2c1b21b3)}.photo-caption button{color:#fff}.photo-thumbnails{display:flex;gap:8px;overflow-x:auto;padding:10px 2px 4px}.photo-thumbnails button{width:64px;height:50px;flex:0 0 auto;padding:2px;border-radius:10px}.photo-thumbnails button.active{border-color:#d57187;box-shadow:0 0 0 2px #d571872e}.photo-thumbnails img{width:100%;height:100%;object-fit:cover;border-radius:7px}.photo-empty span{color:#d78496;font-size:46px}.photo-upload{display:grid;grid-template-columns:minmax(250px,1.25fr) 1fr auto;gap:9px;margin-top:14px}.photo-upload .file-picker{margin:0}.home-page .file-picker-native{width:1px;height:1px;padding:0;margin:-1px}.photo-drawer-stage{position:relative;min-height:520px;overflow:hidden;background:linear-gradient(180deg,color-mix(in srgb,var(--panel-2) 72%,transparent),transparent 36%),color-mix(in srgb,var(--panel-2) 38%,transparent);border:1px dashed color-mix(in srgb,var(--border) 78%,transparent);border-radius:18px}.photo-drawer-stage:before{content:"";position:absolute;top:0;left:8%;right:8%;height:12px;z-index:20;background:linear-gradient(180deg,rgba(87,66,52,.18),transparent);border-radius:0 0 50% 50%}.photo-stack{width:100%;height:520px;min-height:520px;display:flex;flex-direction:column;align-items:stretch;overflow:auto;padding:70px 96px 82px;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:pan-x pan-y;overscroll-behavior:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch}.photo-stack::-webkit-scrollbar{display:none}.photo-stack.dragging{cursor:grabbing}.photo-stack-row{width:max-content;min-width:100%;display:flex;align-items:center;justify-content:center;flex:0 0 auto}.photo-stack-row+.photo-stack-row{margin-top:-78px}.photo-stack-card{position:relative;width:320px;height:370px;flex:0 0 320px;margin-left:-96px;padding:9px 9px 36px!important;overflow:hidden;opacity:0;background:#f4eee5!important;border:1px solid rgba(96,73,56,.18)!important;border-radius:8px!important;box-shadow:0 18px 34px #45352b2e;transform:translateY(-190px) rotate(0) scale(.9);transform-origin:center top;transition:transform .85s cubic-bezier(.2,.82,.24,1),opacity .42s ease;transition-delay:var(--stack-delay)}.photo-stack-card:first-child{margin-left:0}.photo-drawer-stage.open .photo-stack-card{opacity:1;transform:translateY(var(--stack-y)) rotate(var(--stack-rotate)) scale(1)}.photo-stack-card:hover{z-index:30!important;transform:translateY(calc(var(--stack-y) - 12px)) rotate(0) scale(1.035)!important}.photo-stack-card img{width:100%;height:100%;display:block;object-fit:cover;border-radius:4px;pointer-events:none;-webkit-user-select:none;user-select:none}.photo-stack-card>span{position:absolute;left:12px;right:12px;bottom:8px;overflow:hidden;color:#554a40;font-family:Georgia,Songti SC,serif;font-size:12px;text-align:center;text-overflow:ellipsis;white-space:nowrap}.photo-drawer-empty{min-height:520px;display:grid;place-content:center;color:var(--muted);text-align:center}.photo-drawer-empty span{color:var(--accent);font-size:48px}.photo-drawer-empty p{margin:4px 0 0}.detail-overlay{z-index:500}.detail-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.memory-detail-modal{position:relative;width:min(600px,100%);height:min(620px,calc(100vh - 40px));max-height:none;display:flex;flex-direction:column;overflow:hidden}.memory-detail-scroll{min-height:0;flex:1;overflow-y:auto;margin-top:4px;padding:0 10px 82px 0;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--accent) 48%,var(--muted)) transparent}.memory-detail-scroll::-webkit-scrollbar-track{background:transparent}.memory-detail-modal blockquote{margin:18px 0 5px;padding:18px 20px;color:var(--text);background:var(--panel-2);border-left:3px solid var(--accent);border-radius:0 14px 14px 0;font-family:Georgia,Songti SC,serif;font-size:20px;white-space:pre-wrap}.detail-time{margin:5px 0 18px;color:var(--muted);font-size:12px}.detail-comments{margin:18px 0}.detail-comments h4{margin:0 0 9px}.detail-comments article{padding:10px 0;border-top:1px solid var(--border)}.detail-comments article>div{display:flex;justify-content:space-between;gap:10px}.detail-comments time,.detail-comments-empty{color:var(--muted);font-size:11px}.detail-comments article p{margin:4px 0 0;white-space:pre-wrap}.detail-comment-compose{display:grid;grid-template-columns:1fr auto;gap:9px;align-items:end}.detail-comment-compose textarea{min-height:72px;resize:vertical}.photo-detail-modal{position:relative;width:min(1040px,96vw);height:min(720px,calc(100vh - 40px));max-height:none;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(310px,.75fr);gap:24px;overflow:hidden}.photo-detail-close{position:absolute;top:12px;right:12px;z-index:2;background:#261e198f;color:#fff}.photo-detail-image{min-width:0;min-height:0;height:100%;display:grid;place-items:center;overflow:hidden;background:#2a2521;border-radius:16px}.photo-detail-image img{width:auto;height:auto;max-width:100%;max-height:100%;display:block;object-fit:contain;image-rendering:auto}.photo-detail-info{min-width:0;min-height:0;height:100%;display:flex;flex-direction:column;overflow-y:auto;padding:16px 4px 82px 0;scrollbar-width:none}.photo-detail-info::-webkit-scrollbar{display:none}.photo-detail-info h3{margin:5px 0;font-family:Georgia,Songti SC,serif}.detail-floating-actions{position:absolute;right:20px;bottom:18px;z-index:12;display:flex;align-items:center;justify-content:flex-end;gap:9px}.detail-more-wrap{position:relative}.detail-chat-button,.photo-more-button{width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;padding:0!important;color:var(--text)!important;background:var(--panel-2)!important;border-color:var(--border)!important;border-radius:50%!important;box-shadow:0 8px 18px #4b382c1f}.detail-chat-button:hover,.photo-more-button:hover{color:var(--accent)!important;border-color:color-mix(in srgb,var(--accent) 46%,var(--border))!important}.detail-chat-button svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.floating-composer{position:absolute;right:0;bottom:calc(100% + 10px);width:min(360px,calc(100vw - 76px));padding:10px;background:var(--panel);border:1px solid var(--border);border-radius:16px;box-shadow:0 18px 48px #4633282e;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.photo-more-button{gap:3px}.photo-more-button>span{width:4px;height:4px;background:currentColor;border-radius:50%}.photo-action-menu{position:absolute;right:0;bottom:calc(100% + 10px);z-index:8;width:142px;overflow:hidden;padding:6px;background:var(--panel);border:1px solid var(--border);border-radius:13px;box-shadow:0 16px 42px #4633282e;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.photo-action-menu a,.photo-action-menu button{width:100%;display:block;padding:9px 10px;color:var(--text);background:transparent!important;border:0!important;border-radius:8px;font-size:13px;text-align:left;text-decoration:none}.photo-action-menu a:hover{background:color-mix(in srgb,var(--accent) 9%,transparent)!important}.photo-action-menu button{color:var(--danger)!important}.photo-action-menu button:hover{background:color-mix(in srgb,var(--danger) 10%,transparent)!important}textarea{resize:none!important}.emoji-field{position:relative;width:100%;min-width:0}.emoji-field input,.emoji-field textarea{margin:0}.emoji-field:not(.multiline) input{padding-right:46px}.emoji-field.multiline textarea{width:100%;min-height:96px;padding:12px 132px 46px 14px;margin:0;color:var(--text);background:var(--panel-2);border:1px solid var(--border);border-radius:12px;outline:none;font:inherit;line-height:1.55;resize:none!important}.emoji-field.multiline textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent)}.emoji-trigger{position:absolute;right:8px;top:50%;z-index:3;width:32px;height:32px;display:grid;place-items:center;padding:0!important;color:var(--muted)!important;background:transparent!important;border-color:transparent!important;border-radius:9px!important;transform:translateY(-50%)}.emoji-trigger:hover{color:var(--accent)!important;background:color-mix(in srgb,var(--accent) 9%,transparent)!important}.emoji-trigger svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.emoji-field.multiline .emoji-trigger{left:10px;right:auto;top:auto;bottom:8px;transform:none}.emoji-field-action{position:absolute;right:10px;bottom:9px;z-index:2;min-width:108px;height:38px;padding:8px 13px!important;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}.emoji-field-action.romantic-primary{color:#fff!important;background:linear-gradient(135deg,var(--accent),var(--accent-2))!important;border-color:transparent!important;box-shadow:0 8px 18px color-mix(in srgb,var(--accent) 24%,transparent)}.emoji-field-action.romantic-primary:hover:not(:disabled){filter:brightness(.97);transform:translateY(-1px)}.emoji-field-action.romantic-primary:disabled{color:color-mix(in srgb,#fff 78%,transparent)!important;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 62%,var(--panel)),color-mix(in srgb,var(--accent-2) 62%,var(--panel)))!important;opacity:.72}.emoji-field-count{position:absolute;left:48px;bottom:15px;color:var(--muted);font-size:11px}.emoji-picker{position:absolute;right:0;bottom:calc(100% + 8px);z-index:60;width:244px;display:grid;grid-template-columns:repeat(6,1fr);gap:4px;padding:9px;background:var(--panel);border:1px solid var(--border);border-radius:14px;box-shadow:0 18px 45px #43322729;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.emoji-picker button{width:32px;height:32px;padding:0!important;display:grid;place-items:center;background:transparent!important;border-color:transparent!important;font-size:18px}.emoji-field.multiline .emoji-picker{left:0;right:auto}.home-error{margin-top:10px;color:#b74159;font-size:13px}.games-page{min-height:calc(100vh - 68px);display:grid;place-items:center;padding:24px;background:radial-gradient(circle at center,#fff2f4,#f8eaef)}.games-placeholder{max-width:520px;padding:52px;color:#5d4149;text-align:center;background:#ffffffb3;border:1px solid rgba(194,120,137,.18);border-radius:28px;box-shadow:0 24px 70px #6f414e1f}.games-icon{color:#d1768a;font-size:60px}@media (max-width: 820px){.home-two-column{grid-template-columns:1fr}.timer-form{grid-template-columns:1fr 1fr}.timer-form input:first-child{grid-column:1 / -1}.photo-upload{grid-template-columns:1fr}}@media (max-width: 640px){.app-shell{max-width:100%;overflow-x:clip}.site-nav{min-height:58px;min-width:0;padding:0 10px;gap:4px;overflow:visible}.site-nav-left,.site-nav-right{min-width:0;gap:2px}.brand-button{max-width:128px;overflow:hidden;font-size:17px;text-overflow:ellipsis}.mobile-menu{display:inline-flex}.nav-links{display:none;position:absolute;top:56px;left:12px;flex-direction:column;align-items:stretch;width:150px;padding:8px;background:#fff9f7fa;border:1px solid var(--border);border-radius:12px;box-shadow:0 16px 38px #64354524}.nav-links.open{display:flex}.nav-user{display:none}.site-nav-right{gap:2px}.site-nav-right button{padding:7px 9px}.msg-dropdown{position:fixed;top:58px;right:10px}.home-page{padding:28px 12px 50px}.home-hero{padding:22px 8px 30px}.home-section{padding:18px;border-radius:19px}.home-section-head{align-items:flex-start}.section-note{display:none}.timer-form{grid-template-columns:1fr}.timer-form input:first-child{grid-column:auto}.timer-value strong{font-size:25px}.photo-stage{aspect-ratio:1 / 1}.games-placeholder{padding:36px 20px}.room-header{align-items:flex-start;flex-wrap:wrap;gap:8px;padding:12px}.room-header>div:first-child{flex:1 1 100%;min-width:0}.header-actions{width:100%;justify-content:flex-end;flex-shrink:0;gap:5px}.room-member-avatars{max-width:104px;overflow:hidden}.header-actions button{padding:7px 9px;font-size:13px}.room-body{grid-template-columns:minmax(0,1fr);width:100%;min-width:0;max-width:100vw;padding:12px 10px 28px}.main-col,.sidebar{width:min(100%,calc(100vw - 20px));min-width:0;max-width:calc(100vw - 20px)}.main-col>*,.sidebar>.card{min-width:0;max-width:100%}.player-box{width:min(100%,calc(100vw - 20px));min-width:0;max-width:calc(100vw - 20px);max-height:none}iframe.player{min-width:0!important;max-width:100%!important}.tabs,.row,.member-actions{min-width:0;max-width:100%}.player-control-row{width:100%}.player-control-right{flex:0 1 auto}.player-chat-tray{min-width:0}}.msg-wrap{position:relative}.msg-trigger{background:transparent;border:none;color:var(--text);cursor:pointer;font-size:14px;padding:6px 10px;border-radius:8px}.msg-trigger:hover{background:#d3778b17}.msg-dropdown{position:absolute;top:100%;right:0;margin-top:8px;width:280px;background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:0 18px 50px #60334229;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);z-index:200;padding:8px}.msg-dropdown-head{font-size:13px;color:var(--muted);padding:4px 8px 8px;border-bottom:1px solid var(--border);margin-bottom:6px}.msg-empty{color:var(--muted);font-size:13px;padding:12px 8px}.dot{width:9px;height:9px;border-radius:50%;background:var(--border);flex-shrink:0}.dot.on{background:#2ecc71}.messenger-overlay{z-index:480}.messenger-modal{position:relative;width:min(980px,calc(100vw - 40px));height:min(700px,calc(100vh - 40px));display:flex;flex-direction:column;overflow:hidden;padding:22px}.messenger-head,.messenger-chat-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.messenger-head{flex:0 0 auto;margin-bottom:14px}.messenger-head h3{margin:2px 0 0;font-family:Georgia,Songti SC,serif;font-size:25px}.messenger-layout{min-height:0;flex:1;display:grid;grid-template-columns:320px minmax(0,1fr);overflow:hidden;border:1px solid var(--border);border-radius:17px;background:color-mix(in srgb,var(--panel-2) 76%,transparent)}.messenger-sidebar{min-width:0;min-height:0;display:flex;flex-direction:column;padding:14px;border-right:1px solid var(--border);overflow:hidden}.friend-search{position:relative;display:block}.friend-search svg{position:absolute;left:11px;top:10px;width:17px;fill:none;stroke:var(--muted);stroke-width:1.8;pointer-events:none}.friend-search input{margin:0;padding-left:36px}.friend-search-results{flex:0 0 auto;max-height:145px;overflow-y:auto;margin-top:8px}.friend-search-item{min-height:38px;display:flex;align-items:center;gap:8px;padding:5px 4px;font-size:13px}.friend-search-item>span:nth-child(2){flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.friend-search-item button{padding:5px 10px;border-radius:8px;font-size:12px}.already-friend{color:var(--muted);font-size:12px}.friend-list-title{flex:0 0 auto;margin:10px 4px 5px;color:var(--muted);font-size:12px;letter-spacing:.08em}.friend-list{min-height:0;flex:1;overflow-y:auto}.messenger-modal .friend-item{width:100%;min-height:66px;display:flex;align-items:center;gap:10px;padding:9px 8px;border:1px solid transparent;border-radius:12px;color:var(--text);background:transparent;box-shadow:none;text-align:left;cursor:pointer}.messenger-modal .friend-item:hover,.messenger-modal .friend-item.active{background:color-mix(in srgb,var(--accent) 10%,var(--panel-2))}.messenger-modal .friend-item.active{border-color:color-mix(in srgb,var(--accent) 32%,var(--border))}.friend-avatar-wrap{position:relative;display:inline-flex;flex:0 0 auto}.friend-avatar-wrap .profile-avatar{width:42px;height:42px;font-size:18px}.friend-presence{position:absolute;right:-1px;bottom:-1px;width:12px;height:12px;border:2px solid var(--panel);border-radius:50%;background:#b9b3ad}.friend-presence.on{background:#35bd72}.friend-main{flex:1;min-width:0}.friend-name-row{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.friend-name{overflow:hidden;font-size:14px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.friend-status{flex:0 0 auto;color:var(--muted);font-size:10px;font-weight:400}.friend-last{display:block;margin-top:3px;overflow:hidden;color:var(--muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.friend-tail{min-width:25px;display:flex;flex:0 0 auto;align-items:flex-end;flex-direction:column;gap:5px}.friend-time{color:var(--muted);font-size:10px;white-space:nowrap}.friend-unread{min-width:18px;height:18px;padding:0 5px;display:inline-grid;place-items:center;border-radius:999px;color:#fff;background:#e05050;box-shadow:0 3px 8px #cc373740;font-size:10px;font-weight:700;line-height:1}.messenger-chat{min-width:0;min-height:0;display:flex;flex-direction:column;padding:16px;overflow:hidden}.messenger-chat-head{flex:0 0 auto;justify-content:flex-start;padding:0 3px 12px;border-bottom:1px solid var(--border)}.messenger-chat-identity{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.messenger-chat-identity strong{font-size:17px}.messenger-chat-status{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12px}.messenger-chat-head .dot{display:inline-block}.messenger-chat .chat-messages{min-height:0;height:auto;flex:1;margin:12px 0;padding:14px;gap:12px;border-radius:13px}.pm-message-row{display:flex;align-items:center;gap:8px}.pm-message-row.mine{justify-content:flex-end}.pm-message-row .profile-avatar{width:34px;height:34px;font-size:14px}.pm-message-bubble{position:relative;max-width:min(72%,420px);padding:9px 12px;border:1px solid rgba(111,89,71,.12);border-radius:4px 13px 13px;color:var(--text);background:var(--panel);box-shadow:0 4px 12px #563d3014;line-height:1.5;white-space:pre-wrap;word-break:break-word}.pm-message-row:not(.mine) .pm-message-bubble:before{position:absolute;top:8px;left:-6px;width:10px;height:10px;border-bottom:1px solid rgba(111,89,71,.12);border-left:1px solid rgba(111,89,71,.12);background:var(--panel);content:"";transform:rotate(45deg)}.pm-message-row.mine .pm-message-bubble{border-color:#b1513224;border-radius:13px 4px 13px 13px;background:color-mix(in srgb,var(--accent) 18%,var(--panel))}.pm-message-row.mine .pm-message-bubble:after{position:absolute;top:8px;right:-6px;width:10px;height:10px;border-top:1px solid rgba(177,81,50,.14);border-right:1px solid rgba(177,81,50,.14);background:color-mix(in srgb,var(--accent) 18%,var(--panel));content:"";transform:rotate(45deg)}.messenger-compose{flex:0 0 auto;display:grid;grid-template-columns:1fr auto;gap:9px}.messenger-compose input{margin:0}.messenger-error{color:var(--danger);font-size:12px;padding:0 3px 8px}.messenger-welcome{margin:auto;text-align:center;color:var(--muted)}.messenger-welcome>span{color:var(--accent);font-size:48px}.messenger-welcome h4{margin:4px 0;color:var(--text);font-size:18px}.messenger-welcome p{margin:0;font-size:13px}.messenger-mobile-friend-list{display:none}.photo-action-loading{display:block;padding:8px 12px;color:var(--muted);font-size:12px}.friend-adder{position:relative;flex:0 0 auto;margin-top:8px}.friend-adder-button{width:44px;height:44px;display:grid;place-items:center;padding:0;border-radius:50%;color:#fff;background:var(--accent);box-shadow:0 10px 24px color-mix(in srgb,var(--accent) 30%,transparent)}.friend-adder-button svg{width:20px;fill:none;stroke:currentColor;stroke-width:2}.friend-adder-panel{position:absolute;left:54px;bottom:0;z-index:4;width:238px;padding:10px;border:1px solid var(--border);border-radius:14px;background:var(--panel);box-shadow:0 16px 38px #4e392c29}.friend-adder-title{margin:0 2px 8px;font-size:13px;font-weight:600}.messenger-add-friend{position:absolute;left:30px;bottom:28px;z-index:8}.friend-add-overlay{z-index:520}.friend-add-modal{width:min(430px,calc(100vw - 32px))}.friend-add-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.friend-add-head h3{margin:3px 0 0;font-family:Georgia,Songti SC,serif;font-size:24px}.friend-add-modal .modal-results{max-height:280px;min-height:80px;margin-top:10px}.gallery-page{position:relative;min-height:calc(200vh - 136px);min-height:calc(200dvh - 136px);overflow:visible;background:radial-gradient(circle at 18% 18%,rgba(207,145,112,.22),transparent 30%),radial-gradient(circle at 82% 70%,rgba(151,118,138,.16),transparent 34%),linear-gradient(145deg,#eee8df,#e8e0d6)}.gallery-cover{position:relative;height:calc(100vh - 68px);height:calc(100dvh - 68px);min-height:0;display:grid;place-items:center;overflow:hidden;touch-action:none;scroll-snap-align:start;scroll-snap-stop:always}.gallery-cover-image,.gallery-cover-shade{position:absolute;top:0;right:0;bottom:0;left:0}.gallery-cover-image{top:-28px;right:-28px;bottom:-28px;left:-28px;background-position:center;background-size:cover;filter:blur(18px) saturate(.82);transform:scale(1.06)}.gallery-cover-shade{background:linear-gradient(180deg,#231b184d,#2d201c80)}.gallery-cover-title{position:relative;z-index:2;padding:28px;color:#fff;text-align:center;text-shadow:0 4px 24px rgba(24,17,15,.45)}.gallery-cover-title .section-kicker{color:#f6d3bd}.gallery-cover-title h1{margin:10px 0 5px;font-family:Georgia,Songti SC,serif;font-size:clamp(46px,8vw,88px);letter-spacing:.08em}.gallery-cover-title p{margin:0;color:#ffffffd1;font-size:clamp(14px,2vw,18px)}.gallery-scroll-hint{position:absolute;left:50%;bottom:24px;z-index:2;display:grid;justify-items:center;gap:4px;color:#fffc;font-size:12px;transform:translate(-50%)}.gallery-scroll-hint svg{width:22px;fill:none;stroke:currentColor;stroke-width:1.8;animation:galleryHint 1.8s ease-in-out infinite}@keyframes galleryHint{0%,to{transform:translateY(0);opacity:.55}50%{transform:translateY(-7px);opacity:1}}.gallery-wall{position:relative;height:calc(100vh - 68px);height:calc(100dvh - 68px);min-height:0;overflow:hidden;padding:0;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;scroll-snap-align:start;scroll-snap-stop:always;scrollbar-width:none;background-image:linear-gradient(rgba(255,255,255,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.12) 1px,transparent 1px);background-size:28px 28px}.gallery-wall::-webkit-scrollbar{display:none}.gallery-wall.dragging{cursor:grabbing}.gallery-canvas{position:absolute;left:50%;top:50%;width:1px;height:1px;transform:translate(0);transform-origin:center;will-change:transform;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.gallery-zoom-control{position:absolute;top:50%;right:18px;z-index:90;width:42px;min-height:174px;display:grid;place-items:center;gap:7px;padding:10px 6px;border:1px solid rgba(115,86,66,.2);border-radius:18px;color:var(--muted);background:color-mix(in srgb,var(--panel) 84%,transparent);box-shadow:0 12px 30px #45352b24;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transform:translateY(-50%);-webkit-user-select:none;user-select:none}.gallery-zoom-control>span{font-size:11px;writing-mode:vertical-rl;letter-spacing:.08em}.gallery-zoom-control input{width:112px;height:18px;margin:46px -46px;accent-color:var(--accent);cursor:pointer;transform:rotate(-90deg)}.gallery-zoom-control output{color:var(--accent-2);font-size:10px;font-variant-numeric:tabular-nums}.gallery-photo-card{position:absolute;left:0;top:0;width:300px;height:350px;margin:0;padding:9px 9px 38px;overflow:hidden;border:1px solid rgba(96,73,56,.18);border-radius:8px;background:#f8f3eb;box-shadow:0 20px 42px #45352b33;opacity:0;transform:translate(calc(-50% + var(--gallery-x)),calc(-50% + var(--gallery-y) + var(--gallery-offset) - 180px)) rotate(var(--gallery-rotate)) scale(.9);transition:transform .82s cubic-bezier(.2,.82,.24,1),opacity .42s ease,box-shadow .22s ease;transition-delay:var(--gallery-delay)}.gallery-wall.revealed .gallery-photo-card{opacity:1;transform:translate(calc(-50% + var(--gallery-x)),calc(-50% + var(--gallery-y) + var(--gallery-offset))) rotate(var(--gallery-rotate)) scale(1)}.gallery-wall.revealed .gallery-photo-card:hover,.gallery-wall.revealed .gallery-photo-card:focus-visible{z-index:80!important;transform:translate(calc(-50% + var(--gallery-x)),calc(-50% + var(--gallery-y) + var(--gallery-offset) - 14px)) rotate(0) scale(1.035)!important;box-shadow:0 28px 54px #45352b45}.gallery-photo-card.photo-opening-source{opacity:0!important;pointer-events:none;transition:opacity .01s linear}.gallery-photo-card,.gallery-photo-card img{-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.gallery-photo-card img{width:100%;height:100%;display:block;object-fit:contain;border-radius:4px;pointer-events:none}.gallery-photo-card span{position:absolute;left:12px;right:12px;bottom:8px;overflow:hidden;color:#554a40;font-family:Georgia,Songti SC,serif;font-size:13px;text-align:center;text-overflow:ellipsis;white-space:nowrap}.photo-exact-clone{position:fixed!important;z-index:700!important;margin:0!important;opacity:1!important;pointer-events:none!important;-webkit-user-select:none!important;user-select:none!important;-webkit-user-drag:none!important;transition:none!important;transition-delay:0s!important;will-change:left,top,width,height,transform}.photo-exact-clone img{-webkit-user-select:none!important;user-select:none!important;-webkit-user-drag:none!important}img.photo-exact-clone{display:block!important;object-fit:contain;border-radius:4px}.gallery-empty{min-height:360px;display:grid;place-content:center;text-align:center;color:var(--muted)}.gallery-empty>span{color:var(--accent);font-size:56px}.gallery-empty h2{margin:3px 0;color:var(--text)}.gallery-empty p{margin:0}.gallery-upload-wrap{position:fixed;right:28px;bottom:28px;z-index:330}.gallery-upload-button{width:62px;height:62px;display:grid;place-items:center;padding:0;border:0;border-radius:50%;color:#fff;background:linear-gradient(145deg,var(--accent),var(--accent-2));box-shadow:0 16px 36px color-mix(in srgb,var(--accent) 42%,transparent)}.gallery-upload-button svg{width:26px;fill:none;stroke:currentColor;stroke-width:2}.gallery-upload-panel{position:absolute;right:0;bottom:76px;width:min(380px,calc(100vw - 32px));padding:20px;border:1px solid var(--border);border-radius:20px;background:var(--panel);box-shadow:0 24px 60px #49342933}.gallery-upload-panel h3{margin:3px 0 14px;font-family:Georgia,Songti SC,serif}.gallery-upload-panel .file-picker{margin-bottom:10px}.gallery-upload-panel .romantic-primary{width:100%;margin-top:10px}.gallery-error{position:fixed;left:50%;bottom:28px;z-index:340;max-width:min(520px,calc(100vw - 130px));display:flex;align-items:center;gap:12px;padding:10px 12px 10px 16px;border:1px solid color-mix(in srgb,var(--danger) 40%,var(--border));border-radius:14px;color:var(--danger);background:var(--panel);box-shadow:0 14px 34px #49342929;transform:translate(-50%)}.gallery-error button{padding:2px 8px}.photo-open-transition{position:fixed;z-index:650;overflow:hidden;padding:9px 9px 38px;border:1px solid rgba(96,73,56,.18);border-radius:8px;background:#f8f3eb;box-shadow:0 24px 58px #2d201b52;pointer-events:none;will-change:left,top,width,height,opacity,transform;transition:left .34s cubic-bezier(.2,.82,.24,1),top .34s cubic-bezier(.2,.82,.24,1),width .34s cubic-bezier(.2,.82,.24,1),height .34s cubic-bezier(.2,.82,.24,1),opacity .3s ease,transform .34s cubic-bezier(.2,.82,.24,1)}.photo-open-transition.center,.photo-open-transition.handoff{left:calc(50% - 180px)!important;top:calc(50% - 210px)!important;width:360px!important;height:420px!important;transform:rotate(0) scale(1)}.photo-open-transition.handoff{opacity:0;transform:translate(-22px) scale(.985);transition-delay:.1s}.photo-open-transition img{width:100%;height:100%;display:block;object-fit:cover;border-radius:4px}.photo-open-transition span{position:absolute;left:12px;right:12px;bottom:8px;overflow:hidden;color:#554a40;font-family:Georgia,Songti SC,serif;font-size:13px;text-align:center;text-overflow:ellipsis;white-space:nowrap}.gallery-detail-enter{animation:galleryDetailOpenRight .48s cubic-bezier(.2,.82,.24,1) both;will-change:clip-path,opacity,transform}@keyframes galleryDetailOpenRight{0%{opacity:.25;clip-path:inset(0 72% 0 0 round 22px);transform:translate(-18px) scale(.985)}to{opacity:1;clip-path:inset(0 0 0 0 round 22px);transform:translate(0) scale(1)}}@keyframes galleryDetailOpenDown{0%{opacity:.25;clip-path:inset(0 0 68% 0 round 18px);transform:translateY(-16px) scale(.985)}to{opacity:1;clip-path:inset(0 0 0 0 round 18px);transform:translateY(0) scale(1)}}.gallery-detail-overlay{background:#4b2b3500;-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0);transition:background .34s ease,backdrop-filter .34s ease}.gallery-detail-overlay.phase-expanded,.gallery-detail-overlay.phase-settled{background:#4b2b3557;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.gallery-detail-shell{position:fixed;z-index:2;max-width:none;margin:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,0fr);gap:0;padding:0;overflow:hidden;border-radius:8px;border-color:transparent;background:transparent;box-shadow:none;transform-origin:top left;transition:transform .56s cubic-bezier(.22,.72,.3,1),border-radius .56s ease,background .2s ease,box-shadow .2s ease;will-change:transform}.gallery-detail-shell.center{transform:var(--detail-open-transform)}.gallery-detail-shell.expanded,.gallery-detail-shell.settled{transform:translateZ(0)}.gallery-detail-shell.expanded,.gallery-detail-shell.settled{grid-template-columns:var(--detail-preview-width) minmax(0,1fr);gap:24px;padding:24px;border-radius:22px}.gallery-detail-shell.expanded,.gallery-detail-shell.settled{background:var(--panel);box-shadow:0 24px 70px #5b2f3d33}.gallery-detail-visual{position:relative;min-width:0;min-height:0;width:100%;height:100%;overflow:hidden;padding:9px 9px 38px;border:1px solid rgba(96,73,56,.18);border-radius:8px;background:#f8f3eb;box-shadow:0 20px 42px #45352b33;transition:opacity .08s linear}.gallery-detail-shell.center .gallery-detail-visual,.gallery-detail-shell.expanded .gallery-detail-visual{opacity:0}.gallery-detail-shell.settled .gallery-detail-visual{opacity:1}.gallery-detail-shell.expanded .gallery-detail-visual,.gallery-detail-shell.settled .gallery-detail-visual{width:var(--detail-preview-width);height:var(--detail-preview-height);align-self:center;padding:0;border-color:transparent;border-radius:10px;background:transparent;box-shadow:none}.gallery-detail-visual img{width:100%;height:100%;display:block;object-fit:contain;border-radius:8px;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.gallery-detail-visual>span{position:absolute;left:6px;right:6px;bottom:8px;overflow:hidden;color:#554a40;font-family:Georgia,Songti SC,serif;font-size:13px;text-align:center;text-overflow:ellipsis;white-space:nowrap;transition:opacity .18s ease}.gallery-detail-shell.expanded .gallery-detail-visual>span,.gallery-detail-shell.settled .gallery-detail-visual>span{opacity:0}.gallery-detail-shell.start .photo-detail-info,.gallery-detail-shell.center .photo-detail-info,.gallery-detail-shell.expanded .photo-detail-info{visibility:hidden;opacity:0;pointer-events:none}.gallery-detail-shell .photo-detail-info{transition:opacity .24s ease .16s}.gallery-detail-shell.start .photo-detail-close,.gallery-detail-shell.center .photo-detail-close,.gallery-detail-shell.expanded .photo-detail-close{visibility:hidden;opacity:0;pointer-events:none}.gallery-detail-shell .photo-detail-close{transition:opacity .2s ease .18s}html.gallery-route-active,body.gallery-route-active{scrollbar-width:none}html.gallery-route-active{scroll-snap-type:y mandatory;scroll-padding-top:68px}html.gallery-route-active::-webkit-scrollbar,body.gallery-route-active::-webkit-scrollbar{display:none}.theme-toggle{width:38px;height:38px;display:grid;place-items:center;padding:0;background:transparent;border-color:transparent}.theme-toggle svg,.nav-user-button svg,.user-dropdown svg,.date-picker-trigger svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.theme-toggle:hover{color:var(--accent);background:#c86f8217}html.theme-transitioning::view-transition-old(root),html.theme-transitioning::view-transition-new(root){animation:none;mix-blend-mode:normal}html.theme-transitioning::view-transition-old(root){z-index:1}html.theme-transitioning::view-transition-new(root){z-index:2;animation:theme-diagonal-reveal 1.5s cubic-bezier(.22,.72,.18,1) both}@keyframes theme-diagonal-reveal{0%{clip-path:circle(0 at 0 0)}to{clip-path:circle(150vmax at 0 0)}}@media (prefers-reduced-motion: reduce){html.theme-transitioning::view-transition-old(root),html.theme-transitioning::view-transition-new(root){animation-duration:.01ms}}.user-menu-wrap{position:relative}.nav-user-button{display:flex;align-items:center;gap:8px;padding:5px 8px 5px 5px;background:transparent;border-color:transparent;color:var(--text)}.nav-user-button>span:not(.profile-avatar){font-size:13px;white-space:nowrap}.nav-user-button>svg{width:15px;height:15px}.user-dropdown{position:absolute;top:calc(100% + 9px);right:0;width:168px;padding:7px;background:var(--panel);border:1px solid var(--border);border-radius:14px;box-shadow:0 18px 50px #60334229;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.user-dropdown button{width:100%;display:flex;align-items:center;gap:10px;padding:9px 10px;background:transparent;border:0;text-align:left}.user-dropdown button:hover{background:#c86f8214}.user-dropdown button.danger{color:var(--danger)}.profile-avatar{display:inline-grid;place-items:center;overflow:hidden;flex:0 0 auto;color:#fff;background:linear-gradient(145deg,#db8a9d,#b85e73);border:2px solid rgba(255,255,255,.68);border-radius:50%;box-shadow:0 4px 14px #7e425226;font-family:Georgia,serif;font-weight:700}.profile-avatar.small{width:30px;height:30px;font-size:13px}.profile-avatar.medium{width:48px;height:48px;font-size:20px}.profile-avatar.large{width:112px;height:112px;font-size:42px}.profile-avatar img{width:100%;height:100%;object-fit:cover}.profile-page{min-height:calc(100vh - 68px);padding:46px 24px 72px;background:radial-gradient(circle at 86% 8%,rgba(255,222,190,.56),transparent 30%),linear-gradient(145deg,#fff8f4eb,#f8ecf2f0)}.profile-hero,.profile-layout{width:min(940px,100%);margin:0 auto}.profile-hero{padding:18px 8px 32px}.profile-hero h1{margin:3px 0 7px;color:#50343d;font-family:Georgia,Songti SC,serif;font-size:clamp(34px,5vw,50px)}.profile-hero>p:last-child{margin:0;color:#876b74}.profile-layout{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}.profile-card{padding:26px;background:var(--panel);border:1px solid var(--border);border-radius:22px;box-shadow:0 18px 60px #6f414e17;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.profile-card-head h2{margin:3px 0 20px;font-family:Georgia,Songti SC,serif}.avatar-editor{display:flex;align-items:center;gap:20px;margin-bottom:22px}.avatar-editor>div:last-child{min-width:0;flex:1}.avatar-editor input{margin-bottom:5px}.profile-help{margin:0 0 5px;color:var(--muted);font-size:12px}.field-label{display:block;margin:12px 0 6px;color:var(--muted);font-size:12px;font-weight:600}.text-button{padding:4px 0;background:transparent;border:0;font-size:12px}.timer-section-tools{display:flex;align-items:center;gap:14px}.timer-add-button{width:38px;height:38px;display:grid;place-items:center;padding:0!important;color:#fff!important;background:linear-gradient(135deg,#d9798d,#b96076)!important;border:0!important;border-radius:50%!important;box-shadow:0 8px 18px #bd667b33;font-size:25px;line-height:1}.timer-modal{width:500px;max-height:min(720px,90vh);overflow:visible}.timer-modal-overlay{z-index:500}.timer-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.timer-modal-head h3{margin:2px 0 4px;font-family:Georgia,Songti SC,serif;font-size:24px}button.modal-close{width:34px;height:34px;display:grid;flex:0 0 auto;place-items:center;padding:0;border:0!important;border-radius:0;color:var(--accent);background:transparent!important;box-shadow:none!important;font-size:27px;font-weight:500;line-height:1}button.modal-close:hover{color:var(--accent-2);background:transparent!important;box-shadow:none!important;transform:scale(1.08)}button.modal-close:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 55%,transparent);outline-offset:2px}.mode-segmented{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:5px;background:var(--panel-2);border:1px solid var(--border);border-radius:14px}.mode-segmented button{background:transparent;border-color:transparent}.mode-segmented button.active{color:var(--accent-2);background:var(--panel);border-color:var(--border);box-shadow:0 6px 16px #80495714}.date-picker{position:relative}.date-picker-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;background:var(--panel-2);text-align:left}.calendar-popover{position:absolute;top:calc(100% + 8px);left:0;z-index:20;width:min(330px,calc(100vw - 72px));padding:13px;background:var(--panel);border:1px solid var(--border);border-radius:16px;box-shadow:0 18px 50px #6033422e;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.timer-modal .calendar-popover{top:-110px;left:calc(100% + 12px)}.calendar-toolbar{display:grid;grid-template-columns:32px 32px 1fr 32px 32px;align-items:center;gap:3px}.calendar-toolbar strong{text-align:center;font-size:13px}.calendar-toolbar button{padding:4px;background:transparent;border-color:transparent;font-size:18px}.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.calendar-weekdays{margin:9px 0 4px}.calendar-weekdays span{color:var(--muted);text-align:center;font-size:11px}.calendar-days button{aspect-ratio:1;padding:0;background:transparent;border-color:transparent;border-radius:9px;font-size:12px}.calendar-days button:hover{background:#c86f821a}.calendar-days button.outside{color:color-mix(in srgb,var(--muted) 45%,transparent)}.calendar-days button.selected{color:#fff;background:linear-gradient(135deg,#d9798d,#b96076)}.background-picker{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.background-picker button{display:flex;align-items:center;gap:7px;padding:8px;background:transparent}.background-picker button>span{width:22px;height:22px;flex:0 0 auto;border-radius:7px;border:1px solid rgba(100,60,70,.08)}.background-picker button.active{color:var(--accent-2);background:#c4664321;border-color:#ae4e2fc7;box-shadow:0 0 0 3px #c466433d,0 8px 18px #c4664333;font-weight:600}.background-picker button.active>span{border-color:#ae4e2f8c;box-shadow:0 2px 8px #c466433d;filter:saturate(1.45) contrast(1.06);transform:scale(1.06)}.background-picker .rose>span,.timer-card.bg-rose{background:linear-gradient(145deg,#ffebef,#fffaf6)}.background-picker .sunset>span,.timer-card.bg-sunset{background:linear-gradient(145deg,#ffe2d3,#fff0e7)}.background-picker .peach>span,.timer-card.bg-peach{background:linear-gradient(145deg,#ffedd9,#fff8ec)}.background-picker .lavender>span,.timer-card.bg-lavender{background:linear-gradient(145deg,#eee4ff,#faf3ff)}.background-picker .mint>span,.timer-card.bg-mint{background:linear-gradient(145deg,#ddf3eb,#f3fbf6)}.background-picker .sky>span,.timer-card.bg-sky{background:linear-gradient(145deg,#dff0fa,#f3f9fc)}.modal-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;margin-top:20px}.modal-actions-spacer{flex:1}.modal-delete-button{color:var(--danger)!important;background:transparent!important;border-color:color-mix(in srgb,var(--danger) 48%,transparent)!important}:root[data-theme=light]{color-scheme:light;--bg: #eee9e1;--panel: rgba(248, 244, 237, .9);--panel-2: rgba(243, 238, 230, .96);--border: rgba(105, 84, 67, .17);--text: #403a34;--muted: #776d64;--accent: #c46643;--accent-2: #a95134;--danger: #b94f45}:root[data-theme=light] .site-nav{background:#f2ede5eb;border-bottom-color:#67503e21;box-shadow:0 8px 28px #483a2f0f}:root[data-theme=light] .brand-button,:root[data-theme=light] .home-hero h1,:root[data-theme=light] .home-section-head h2,:root[data-theme=light] .watch-hero h1,:root[data-theme=light] .profile-hero h1{color:#3f3831}:root[data-theme=light] .eyebrow,:root[data-theme=light] .section-kicker,:root[data-theme=light] .timer-tag,:root[data-theme=light] .timer-value strong,:root[data-theme=light] .nav-links button.active{color:var(--accent-2)}:root[data-theme=light] .timer-status,:root[data-theme=light] .timer-anchor,:root[data-theme=light] .timer-value span,:root[data-theme=light] .section-note,:root[data-theme=light] .home-hero>p:last-child,:root[data-theme=light] .profile-hero>p:last-child{color:var(--muted)}:root[data-theme=light] .home-page,:root[data-theme=light] .profile-page{color:var(--text);background:radial-gradient(circle at 14% 7%,rgba(207,166,128,.28),transparent 32%),radial-gradient(circle at 90% 24%,rgba(190,120,86,.14),transparent 30%),linear-gradient(145deg,#f0ece5,#ebe5dd 50%,#e7e1d9)}:root[data-theme=light] .games-page{color:var(--text);background:radial-gradient(circle at 50% 30%,rgba(205,157,119,.24),transparent 35%),linear-gradient(145deg,#f0ece5,#e7e1d8)}:root[data-theme=light] .games-placeholder{color:var(--text);background:#f8f4ede0;border-color:var(--border);box-shadow:0 22px 65px #483a2f1a}:root[data-theme=light] .games-icon{color:var(--accent)}:root[data-theme=light] .lobby,:root[data-theme=light] .room{background:radial-gradient(circle at 90% 4%,rgba(196,145,108,.2),transparent 29%),linear-gradient(155deg,#f0ece5,#e8e2d9)}:root[data-theme=light] .auth-wrap{background:radial-gradient(circle at 18% 18%,rgba(202,155,119,.28),transparent 34%),radial-gradient(circle at 82% 74%,rgba(183,120,88,.18),transparent 32%),linear-gradient(145deg,#f1ede6,#ebe5dc 52%,#e6dfd6)}:root[data-theme=light] .home-section,:root[data-theme=light] .profile-card,:root[data-theme=light] .card,:root[data-theme=light] .modal,:root[data-theme=light] .message-note,:root[data-theme=light] .calendar-popover{background:#f8f4eddb;border-color:var(--border);box-shadow:0 18px 55px #483a2f14}:root[data-theme=light] .home-page input,:root[data-theme=light] .home-page textarea,:root[data-theme=light] .home-page button{color:var(--text);background:var(--panel-2);border-color:var(--border)}:root[data-theme=light] .home-page button.romantic-primary,:root[data-theme=light] .timer-add-button,:root[data-theme=light] .calendar-days button.selected,:root[data-theme=light] button.primary{color:#fff;background:linear-gradient(135deg,#c86d49,#aa5135);border-color:transparent}:root[data-theme=light] .timer-add-button{background:linear-gradient(135deg,#c86d49,#aa5135)!important;box-shadow:0 8px 18px #8b4c3133}:root[data-theme=light] .nav-links button.active{background:#c4664317;border-color:#a9513429}:root[data-theme=light] .background-picker .rose>span,:root[data-theme=light] .timer-card.bg-rose{background:linear-gradient(145deg,#ead9d3,#f3ebe3)}:root[data-theme=light] .background-picker .sunset>span,:root[data-theme=light] .timer-card.bg-sunset{background:linear-gradient(145deg,#e8cdbd,#f1dfd2)}:root[data-theme=light] .background-picker .peach>span,:root[data-theme=light] .timer-card.bg-peach{background:linear-gradient(145deg,#ead8c0,#f2e7d7)}:root[data-theme=light] .background-picker .lavender>span,:root[data-theme=light] .timer-card.bg-lavender{background:linear-gradient(145deg,#ddd5dc,#eee8e7)}:root[data-theme=light] .background-picker .mint>span,:root[data-theme=light] .timer-card.bg-mint{background:linear-gradient(145deg,#d5dfd6,#e8ece3)}:root[data-theme=light] .background-picker .sky>span,:root[data-theme=light] .timer-card.bg-sky{background:linear-gradient(145deg,#d4dde0,#e8eae6)}:root[data-theme=dark]{color-scheme:dark;--bg: #151217;--panel: rgba(35, 29, 37, .84);--panel-2: rgba(46, 38, 48, .92);--border: rgba(226, 150, 169, .18);--text: #f2e7eb;--muted: #b9a5ad;--accent: #e18ba0;--accent-2: #ca748a;--danger: #ff8299}:root[data-theme=dark] body{background:radial-gradient(circle at 12% 8%,rgba(116,56,77,.38),transparent 32%),radial-gradient(circle at 88% 22%,rgba(100,64,52,.3),transparent 30%),linear-gradient(145deg,#171318,#1d171f 48%,#15141b)}:root[data-theme=dark] .site-nav{background:#18141ae6;border-bottom-color:#e296a924;box-shadow:0 8px 28px #0000002e}:root[data-theme=dark] .brand-button{color:#f3dce3}:root[data-theme=dark] .nav-user{color:#c9b6bd}:root[data-theme=dark] .home-page,:root[data-theme=dark] .profile-page{color:var(--text);background:radial-gradient(circle at 14% 7%,rgba(112,52,75,.36),transparent 32%),radial-gradient(circle at 90% 24%,rgba(102,65,50,.28),transparent 30%),linear-gradient(145deg,#181419,#211820 48%,#17151d)}:root[data-theme=dark] .lobby,:root[data-theme=dark] .room{background:radial-gradient(circle at 90% 4%,rgba(104,64,49,.28),transparent 29%),linear-gradient(155deg,#181419,#211820)}:root[data-theme=dark] .auth-wrap{background:radial-gradient(circle at 18% 18%,rgba(119,52,77,.42),transparent 34%),radial-gradient(circle at 82% 74%,rgba(107,68,52,.34),transparent 32%),linear-gradient(145deg,#171318,#211820 52%,#17151d)}:root[data-theme=dark] .auth-wrap:before,:root[data-theme=dark] .auth-wrap:after{color:#eb8fa414}:root[data-theme=dark] .auth-card h1,:root[data-theme=dark] .home-hero h1,:root[data-theme=dark] .home-section-head h2,:root[data-theme=dark] .watch-hero h1,:root[data-theme=dark] .profile-hero h1,:root[data-theme=dark] .timer-card h3{color:var(--text)}:root[data-theme=dark] .home-hero>p:last-child,:root[data-theme=dark] .watch-hero>p:last-child,:root[data-theme=dark] .profile-hero>p:last-child,:root[data-theme=dark] .timer-status,:root[data-theme=dark] .timer-anchor{color:var(--muted)}:root[data-theme=dark] .home-section,:root[data-theme=dark] .profile-card,:root[data-theme=dark] .message-note,:root[data-theme=dark] .modal,:root[data-theme=dark] .msg-dropdown,:root[data-theme=dark] .user-dropdown,:root[data-theme=dark] .calendar-popover{background:var(--panel)}:root[data-theme=dark] .home-page input,:root[data-theme=dark] .home-page select,:root[data-theme=dark] .home-page textarea,:root[data-theme=dark] .home-page button{color:var(--text);background:var(--panel-2);border-color:var(--border)}:root[data-theme=dark] .home-page button.romantic-primary,:root[data-theme=dark] .calendar-days button.selected{color:#fff;background:linear-gradient(135deg,#d9798d,#b96076);border-color:transparent}:root[data-theme=dark] .timer-card{color:var(--text);border-color:var(--border)}:root[data-theme=dark] .timer-card.bg-rose{background:linear-gradient(145deg,#402731,#302329)}:root[data-theme=dark] .timer-card.bg-sunset{background:linear-gradient(145deg,#493026,#33251f)}:root[data-theme=dark] .timer-card.bg-peach{background:linear-gradient(145deg,#463324,#30281f)}:root[data-theme=dark] .timer-card.bg-lavender{background:linear-gradient(145deg,#332a46,#282335)}:root[data-theme=dark] .timer-card.bg-mint{background:linear-gradient(145deg,#253b35,#202e2a)}:root[data-theme=dark] .timer-card.bg-sky{background:linear-gradient(145deg,#253744,#202b33)}:root[data-theme=dark] .timer-value span{color:#cfb7bf}:root[data-theme=dark] .message-note{border-color:var(--border)}:root[data-theme=dark] .photo-stage{background:#262128}:root[data-theme=dark] .danmaku-stage,:root[data-theme=dark] .photo-drawer-stage{background-color:#18141a75}:root[data-theme=dark] .danmaku-item{box-shadow:0 8px 24px #0003}:root[data-theme=dark] .photo-stack-card{background:#302a2e!important;border-color:var(--border)!important;box-shadow:0 18px 34px #0000004d}:root[data-theme=dark] .photo-stack-card>span{color:var(--text)}:root[data-theme=dark] .photo-detail-image{background:#121012}:root[data-theme=dark] .games-page{background:radial-gradient(circle at center,#2a1e25,#17151c)}:root[data-theme=dark] .games-placeholder{color:var(--text);background:var(--panel);border-color:var(--border)}:root[data-theme=dark] .chat-messages{background:#18141a80}:root[data-theme=dark] .room-header{background:#1f1921a3}:root[data-theme=dark] .room-list li{background:#2c232d9e}:root[data-theme=dark] .nav-links.open{background:#1c171efa}:root[data-theme=dark] .mode-segmented button.active{background:#473642e6}:root[data-theme=dark] .tab.active{background:#463541e6;color:#f0a0b3}:root[data-theme=dark] .gallery-page{background:radial-gradient(circle at 18% 18%,rgba(161,91,91,.17),transparent 30%),radial-gradient(circle at 82% 70%,rgba(115,81,116,.18),transparent 34%),linear-gradient(145deg,#1d191b,#242025)}:root[data-theme=dark] .gallery-photo-card{background:#302a2e;border-color:var(--border);box-shadow:0 20px 42px #00000052}:root[data-theme=dark] .gallery-photo-card span{color:var(--text)}:root[data-theme=dark] .photo-open-transition{background:#302a2e;border-color:var(--border)}:root[data-theme=dark] .photo-open-transition span{color:var(--text)}:root[data-theme=dark] .gallery-detail-visual{background:#302a2e;border-color:var(--border)}:root[data-theme=dark] .gallery-detail-visual>span{color:var(--text)}@media (max-width: 760px){.profile-layout{grid-template-columns:1fr}.profile-page{padding:28px 12px 50px}.profile-hero{padding:22px 8px 28px}}@media (max-width: 820px){.photo-detail-modal{grid-template-columns:1fr;grid-template-rows:minmax(230px,48%) minmax(0,1fr);gap:12px}.photo-detail-image{min-height:0}.photo-detail-info{padding:4px}}@media (max-width: 980px){.timer-modal{overflow-y:auto}.timer-modal .calendar-popover{position:static;width:100%;margin-top:8px}}@media (max-width: 640px){.messenger-overlay{padding:10px}.messenger-modal{width:100%;height:calc(100dvh - 20px);padding:14px;border-radius:18px}.messenger-head{position:absolute;top:20px;right:20px;z-index:12;margin:0}.messenger-head>div{display:none}.messenger-layout{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr)}.messenger-sidebar{display:none}.messenger-chat{padding:20px 10px 10px}.messenger-chat-head{padding-right:48px}.messenger-chat .chat-messages{margin:8px 0}.messenger-compose{grid-template-columns:minmax(0,1fr) auto}.messenger-compose button{padding-inline:13px}.messenger-add-friend{left:24px;bottom:24px}.messenger-mobile-friend-list{min-height:0;display:flex;flex:1;flex-direction:column;overflow:hidden}.messenger-mobile-list-title{flex:0 0 auto;padding:3px 5px 9px;color:var(--muted);font-size:12px;letter-spacing:.08em}.messenger-mobile-list{min-height:0;flex:1;overflow-y:auto}.messenger-mobile-list .friend-item{min-height:72px;padding:10px 8px}.friend-add-modal{padding:18px}.friend-add-modal .modal-results{max-height:45vh}.gallery-page{min-height:calc(200vh - 136px);min-height:calc(200dvh - 136px)}.gallery-cover,.gallery-wall{height:calc(100vh - 68px);height:calc(100dvh - 68px);min-height:0}.gallery-cover-title{padding:20px}.gallery-cover-title h1{font-size:48px}.gallery-cover-title p{font-size:13px}.gallery-scroll-hint{bottom:18px;width:100%}.gallery-photo-card{width:156px;height:188px;padding:7px 7px 31px}.gallery-photo-card span{bottom:7px;font-size:11px}.gallery-upload-wrap{right:17px;bottom:17px}.gallery-upload-button{width:54px;height:54px}.gallery-upload-panel{bottom:66px;padding:16px}.gallery-error{bottom:17px;max-width:calc(100vw - 100px);font-size:12px}.photo-open-transition{padding:7px 7px 31px}.photo-open-transition.center,.photo-open-transition.handoff{left:calc(50% - 90px)!important;top:calc(50% - 108px)!important;width:180px!important;height:216px!important}.photo-open-transition.handoff{transform:translateY(-18px) scale(.985)}.gallery-detail-enter{animation-name:galleryDetailOpenDown}.gallery-detail-shell{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) minmax(0,0fr);padding:0;transition:transform .56s cubic-bezier(.22,.72,.3,1),border-radius .56s ease,background .2s ease,box-shadow .2s ease}.gallery-detail-shell.expanded,.gallery-detail-shell.settled{grid-template-columns:minmax(0,1fr);grid-template-rows:var(--detail-preview-height) minmax(0,1fr);gap:12px;padding:13px;border-radius:18px}.gallery-detail-shell.expanded .gallery-detail-visual,.gallery-detail-shell.settled .gallery-detail-visual{justify-self:center;align-self:start}.gallery-detail-visual{padding:7px 7px 31px}.gallery-detail-visual>span{bottom:7px;font-size:11px}.gallery-detail-shell .photo-detail-info{padding:4px}.gallery-detail-shell.expanded .photo-detail-close,.gallery-detail-shell.settled .photo-detail-close{top:calc(var(--detail-preview-height) + 32px);right:16px;width:32px;height:32px;padding:0;border:0;border-radius:0;color:var(--accent);background:transparent;box-shadow:none;font-size:28px;font-weight:400;line-height:1;opacity:.88}.gallery-detail-shell.expanded .photo-detail-info,.gallery-detail-shell.settled .photo-detail-info{padding-right:44px}.gallery-detail-shell.expanded .photo-detail-close:hover,.gallery-detail-shell.settled .photo-detail-close:hover{color:var(--accent-2);background:transparent;box-shadow:none;opacity:1;transform:scale(1.08)}.gallery-detail-shell.expanded .photo-detail-close:focus-visible,.gallery-detail-shell.settled .photo-detail-close:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 55%,transparent);outline-offset:2px}.nav-user-button>span:not(.profile-avatar){display:none}.nav-user-button{padding-right:4px}.nav-user-button>svg{display:none}.theme-toggle{width:34px;height:34px}.user-dropdown{position:fixed;top:58px;right:10px}.timer-section-tools .section-note{display:none}.timer-modal{padding:20px}.background-picker{grid-template-columns:repeat(2,1fr)}.avatar-editor{align-items:flex-start;flex-direction:column}.danmaku-stage{height:170px}.photo-stack{min-height:260px;height:260px;padding:34px 22px 42px}.photo-drawer-stage,.photo-drawer-empty{min-height:260px}.photo-stack-card{width:148px;height:178px;flex-basis:148px;margin-left:-42px;padding:7px 7px 30px!important}.photo-stack-row+.photo-stack-row{margin-top:-36px}.detail-comment-compose{grid-template-columns:1fr}.photo-detail-modal{width:min(380px,calc(100vw - 40px));height:min(560px,68vh);padding:13px;border-radius:18px}.photo-detail-image{min-height:0}}.toolbar-menu-wrap{position:relative}.toolbar-group{display:inline-flex;align-items:center;flex-wrap:wrap;gap:4px;padding-right:6px;border-right:1px solid var(--border)}.toolbar-group:last-child{padding-right:0;border-right:0}.toolbar-insert-group{flex:1 1 100%;padding-top:7px;border-top:1px solid var(--border);border-right:0}.rich-editor-toolbar .toolbar-menu-wrap>button.active,.rich-editor-toolbar>button.active{color:var(--accent-2);border-color:color-mix(in srgb,var(--accent) 45%,var(--border));background:color-mix(in srgb,var(--accent) 10%,var(--panel-2))}.toolbar-popover{position:absolute;z-index:80;top:calc(100% + 8px);left:0;min-width:150px;padding:7px;display:grid;gap:4px;border:1px solid var(--border);border-radius:12px;background:color-mix(in srgb,var(--panel) 97%,transparent);box-shadow:0 16px 38px #23171d40;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-sizing:border-box}.rich-editor-toolbar .toolbar-popover button{width:100%;height:auto;padding:8px 10px;text-align:left;border-color:transparent;background:transparent}.rich-editor-toolbar .toolbar-popover button:hover{color:var(--accent-2);background:color-mix(in srgb,var(--accent) 9%,transparent)}.rich-editor-toolbar .toolbar-select-button{width:auto;min-width:72px;padding-inline:9px;display:inline-flex;align-items:center;justify-content:center;gap:6px}.rich-editor-toolbar .toolbar-select-button.compact{min-width:60px}.toolbar-select-symbol{font:700 13px/1 Georgia,serif;letter-spacing:-1px}.toolbar-size-symbol{font-size:14px;transform:scaleY(1.08)}.font-menu button:nth-child(1){font-family:Georgia,Songti SC,serif}.font-menu button:nth-child(2){font-family:Microsoft YaHei,sans-serif}.font-menu button:nth-child(3){font-family:SimSun,serif}.font-menu button:nth-child(4){font-family:Consolas,monospace}.size-menu button:nth-child(1){font-size:11px}.size-menu button:nth-child(3){font-size:15px}.size-menu button:nth-child(4){font-size:18px}.toolbar-color-button{position:relative;font-family:Georgia,serif;font-weight:700}.toolbar-color-button:after{content:"";position:absolute;right:7px;bottom:4px;left:7px;height:3px;border-radius:3px;background:linear-gradient(90deg,#c46643,#d3a34a,#4c765d,#4b6f91,#7a5c91)}.color-menu{left:50%;width:min(288px,calc(100vw - 32px));min-width:260px;padding:12px;display:flex;flex-direction:column;gap:10px;transform:translate(-50%)}.color-menu-section{display:grid;gap:6px}.color-menu-section+.color-menu-section{padding-top:9px;border-top:1px solid var(--border)}.color-menu-label{margin:0;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.08em}.color-swatch-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:7px}.rich-editor-toolbar .color-menu .color-swatch-grid button{width:27px;height:27px;padding:0;border:3px solid var(--panel);border-radius:50%;box-shadow:0 0 0 1px var(--border)}.rich-editor-toolbar .color-menu .color-swatch-grid button:hover{transform:scale(1.08);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 42%,var(--border))}.custom-color-row{min-width:0;display:grid;grid-template-columns:32px minmax(84px,1fr) 54px;align-items:center;gap:7px}.custom-color-picker{position:relative;width:30px;height:30px;cursor:pointer}.custom-color-picker input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.custom-color-picker span{display:block;width:30px;height:30px;border:3px solid var(--panel);border-radius:50%;box-shadow:0 0 0 1px var(--border)}.custom-color-row>input{min-width:0;height:34px;margin:0;padding:6px 8px;font:12px/1 ui-monospace,SFMono-Regular,Consolas,monospace;text-transform:uppercase}.rich-editor-toolbar .color-menu .custom-color-row>button,.rich-editor-toolbar .highlight-menu .custom-color-row>button{width:54px;height:34px;padding:6px;text-align:center;border-color:var(--border)}.rich-editor-toolbar .color-menu .color-reset{width:100%;padding:8px 10px;text-align:center;border-top:1px solid var(--border);border-radius:8px}.toolbar-highlight-button{width:auto!important;min-width:56px!important}.toolbar-highlight-button:after{content:"";display:block;height:4px;margin-top:-4px;border-radius:4px;background:#f0dda8}.highlight-menu{left:50%;width:min(270px,calc(100vw - 32px));padding:12px;transform:translate(-50%)}.highlight-menu .color-swatch-grid{grid-template-columns:repeat(6,1fr);margin:4px 0 10px}.rich-editor-toolbar .highlight-menu .color-swatch-grid button{width:28px;height:28px;padding:0;border:3px solid var(--panel);border-radius:50%;box-shadow:0 0 0 1px var(--border)}.link-menu{width:min(360px,calc(100vw - 32px));padding:12px}.link-menu>span{color:var(--muted);font-size:11px}.link-menu-fields{display:grid;gap:8px;margin-top:9px}.link-menu-field{display:grid;gap:4px}.link-menu-field>span{color:var(--muted);font-size:11px}.link-menu input{width:100%;min-width:0;height:35px;margin:0;padding:7px 9px}.link-menu-actions{display:flex;justify-content:flex-end;margin-top:10px}.rich-editor-toolbar .link-menu-actions button{width:64px;padding:7px;text-align:center;border-color:var(--border)}.toolbar-import-button{margin-left:auto;color:var(--accent-2)!important;border-style:dashed!important}.rich-editor-toolbar .toolbar-group>button,.rich-editor-toolbar .toolbar-menu-wrap>button,.rich-editor-toolbar .toolbar-select-button,.rich-editor-toolbar .toolbar-select-button.compact,.rich-editor-toolbar .toolbar-highlight-button{width:34px!important;min-width:34px!important;padding:6px!important;display:inline-grid;place-items:center}.editor-toolbar-icon{width:18px;height:18px;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.toolbar-select-button:after{content:"";position:absolute;right:3px;bottom:3px;width:4px;height:4px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);opacity:.58}.toolbar-select-button{position:relative}.toolbar-color-button:after{right:5px;bottom:3px;left:5px;height:2px}.toolbar-highlight-button:after{width:17px;height:3px;margin:-5px 0 0;background:#f0dda8}.rich-content-editor{min-height:510px;max-height:none;padding:24px;overflow:visible;color:var(--text);outline:none;font:16px/1.95 Georgia,Songti SC,serif;caret-color:var(--accent);white-space:pre-wrap;overflow-wrap:anywhere;scroll-margin-top:calc(var(--editor-toolbar-top, 170px) + var(--editor-toolbar-height, 120px) + 16px)}.rich-content-editor :is(p,pre,h1,h2,h3,li){scroll-margin-top:calc(var(--editor-toolbar-top, 170px) + var(--editor-toolbar-height, 120px) + 16px)}.rich-content-editor:empty:before{content:attr(data-placeholder);color:color-mix(in srgb,var(--muted) 72%,transparent);pointer-events:none}.rich-content-editor:focus{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--accent) 24%,transparent)}.rich-content-editor p{margin:0 0 18px}.rich-content-editor h1{margin:30px 0 12px;font-size:31px}.rich-content-editor h2{margin:26px 0 10px;font-size:25px}.rich-content-editor h3{margin:22px 0 9px;font-size:20px}.rich-content-editor hr{margin:28px 0;border:0;border-top:1px solid var(--border)}.rich-content-editor a{color:var(--accent-2);text-decoration:underline}.rich-content-editor blockquote{margin:22px 0;padding:12px 18px;color:var(--muted);border-left:3px solid var(--accent);background:color-mix(in srgb,var(--accent) 7%,transparent)}.rich-content-editor pre{margin:22px 0;padding:16px;overflow:auto;color:#eee7ec;border-radius:12px;background:#211d24;font:13px/1.7 ui-monospace,SFMono-Regular,Consolas,monospace}.rich-content-editor table{width:100%;margin:22px 0;border-collapse:collapse}.rich-content-editor th,.rich-content-editor td{padding:9px 11px;border:1px solid var(--border)}.rich-content-editor th{background:color-mix(in srgb,var(--accent) 9%,transparent)}.rich-content-editor figure{margin:24px 0;text-align:center}.rich-content-editor figure img{display:block;max-width:100%;max-height:540px;margin:0 auto;border-radius:12px}.rich-content-editor figure figcaption{margin-top:7px;color:var(--muted);font-size:12px}.editor-attachment-placeholder{margin:20px 0;padding:13px 15px;display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--border);border-radius:12px;background:color-mix(in srgb,var(--accent) 6%,transparent)}.editor-attachment-placeholder span{color:var(--muted);font-size:12px}.tag-picker{position:relative}.tag-input-row{display:grid;grid-template-columns:minmax(0,1fr) 42px}.tag-input-row input{border-radius:11px 0 0 11px}.tag-input-row button{margin-left:-1px;padding:0;border-radius:0 11px 11px 0;color:var(--muted);background:var(--panel-2)}.tag-input-row button:hover{color:var(--accent-2)}.tag-input-row button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform .18s ease}.tag-picker:has(input[aria-expanded=true]) .tag-input-row button svg{transform:rotate(180deg)}.recent-tag-menu{position:absolute;z-index:90;top:calc(100% - 10px);right:0;left:0;padding:12px;display:grid;gap:9px;border:1px solid var(--border);border-radius:12px;background:color-mix(in srgb,var(--panel) 98%,transparent);box-shadow:0 16px 38px #23171d3d;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.recent-tag-menu>strong{color:var(--muted);font-size:11px;letter-spacing:.08em}.recent-tag-menu>span{color:var(--muted);font-size:12px}.recent-tag-menu>div{max-height:230px;display:grid;gap:4px;overflow-y:auto}.recent-tag-menu button{width:100%;min-height:36px;padding:7px 9px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;color:var(--text);border-color:transparent;border-radius:8px;background:transparent;font-size:13px;text-align:left}.recent-tag-menu button:hover,.recent-tag-menu button.active{color:var(--accent-2);border-color:color-mix(in srgb,var(--accent) 22%,var(--border));background:color-mix(in srgb,var(--accent) 9%,transparent)}.recent-tag-menu button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recent-tag-menu button em{color:var(--muted);font-size:9px;font-style:normal}.author-brand-icon{width:19px;height:19px;color:currentColor}.article-page-toolbar,.article-detail-layout{width:min(1180px,100%)}.article-detail-layout{margin:0 auto;display:grid;grid-template-columns:230px minmax(0,1fr);align-items:start;gap:22px}.article-detail-main{min-width:0;display:grid;gap:22px}.article-side-column{position:sticky;top:92px;display:grid;gap:14px;min-width:0;max-height:calc(100vh - 110px);overflow-y:auto;scrollbar-width:thin}.author-profile-card{padding:24px 18px;border:1px solid var(--border);border-radius:20px;background:color-mix(in srgb,var(--panel) 91%,transparent);box-shadow:0 16px 42px #483a2f14;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.author-profile-avatar,.comment-avatar{display:grid;place-items:center;flex:none;color:#fff;border-radius:50%;background:linear-gradient(145deg,#d48696,#9e5368);font-family:Georgia,serif;font-weight:700}.author-profile-avatar{width:68px;height:68px;margin-bottom:18px;border:3px solid color-mix(in srgb,var(--accent) 20%,var(--panel));font-size:28px}.author-profile-card .section-kicker{margin:0;font-size:9px}.author-profile-card h2{margin:3px 0 6px;font-family:Georgia,Songti SC,serif}.author-profile-card>p:not(.section-kicker){margin:0;color:var(--muted);font-size:13px}.author-stat{margin:20px 0;padding:13px 0;display:flex;align-items:baseline;gap:8px;border-block:1px solid var(--border)}.author-stat strong{color:var(--accent-2);font-family:Georgia,serif;font-size:27px}.author-stat span{color:var(--muted);font-size:12px}.author-links{display:grid;gap:7px}.author-links a{padding:9px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;color:var(--text);border:1px solid var(--border);border-radius:11px;text-decoration:none;background:var(--panel-2)}.author-links a:hover{color:var(--accent-2);border-color:color-mix(in srgb,var(--accent) 38%,var(--border))}.author-links a>span:first-child{width:25px;text-align:center;font-size:18px}.author-links a>span:nth-child(2){min-width:0;display:grid}.author-links small{overflow:hidden;color:var(--muted);font-size:9px;text-overflow:ellipsis;white-space:nowrap}.author-links em{font-size:12px;font-style:normal}.steam-brand-icon{overflow:visible}.article-title-nav{padding:18px;border:1px solid var(--border);border-radius:18px;background:color-mix(in srgb,var(--panel) 91%,transparent);box-shadow:0 12px 34px #483a2f0f}.article-title-nav .section-kicker{margin:0;font-size:9px}.article-title-nav h2{margin:3px 0 12px;font-family:Georgia,Songti SC,serif;font-size:18px}.article-title-nav>div{display:grid;gap:6px}.article-title-nav button{width:100%;padding:9px 10px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;color:var(--muted);border-color:transparent;text-align:left;background:transparent}.article-title-nav button:hover{color:var(--text);border-color:var(--border);background:var(--panel-2)}.article-title-nav button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.article-title-nav button em{font-size:10px;font-style:normal}.article-title-nav button.toc-level-1{color:var(--text);font-weight:700}.article-title-nav button.toc-level-2{padding-left:18px}.article-toc-empty{margin:0;color:var(--muted);font-size:13px}.rich-article-prose h1[id],.rich-article-prose h2[id],.article-prose h1[id],.article-prose h2[id]{scroll-margin-top:92px}.article-reader-page{width:100%}.article-pagination{margin-top:42px;padding-top:22px;display:grid;grid-template-columns:1fr 1fr;gap:12px;border-top:1px solid var(--border)}.article-pagination button{min-height:78px;padding:13px 15px;display:grid;align-content:center;text-align:left}.article-pagination button:last-child{text-align:right}.article-pagination small{margin-bottom:3px;color:var(--muted)}.article-pagination strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.article-comments-card{padding:clamp(20px,4vw,34px);border:1px solid var(--border);border-radius:22px;background:color-mix(in srgb,var(--panel) 91%,transparent);box-shadow:0 16px 42px #483a2f12}.comments-card-head{margin-bottom:22px;display:flex;align-items:flex-end;justify-content:space-between;gap:14px}.comments-card-head p{margin:0;color:var(--muted);font-size:12px}.comments-card-head .section-kicker{color:var(--accent-2)}.comments-card-head h2{margin:2px 0 0;font-family:Georgia,Songti SC,serif}.comments-card-head h2 span{margin-left:4px;color:var(--muted);font-size:13px}.comment-compose{padding:15px;display:grid;grid-template-columns:auto 1fr;gap:12px;border:1px solid var(--border);border-radius:15px;background:var(--panel-2)}.comment-avatar{width:38px;height:38px;font-size:15px}.comment-compose textarea{width:100%;min-height:88px;margin:0;padding:2px;resize:vertical;color:var(--text);border:0;background:transparent;outline:0;font:inherit}.comment-compose>div:last-child>div{display:flex;align-items:center;justify-content:space-between;gap:10px}.comment-compose span{color:var(--muted);font-size:11px}.article-comments-card>.blog-error{width:auto;margin:12px 0 0}.article-comment-list{margin-top:24px;display:grid;gap:0}.article-comment{padding:18px 0;display:grid;grid-template-columns:auto 1fr;gap:12px;border-top:1px solid var(--border)}.article-comment>div:last-child{min-width:0}.article-comment header{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.article-comment header span{color:var(--muted);font-size:11px}.article-comment header button{margin-left:auto;padding:2px 7px;color:var(--danger);border:0;background:transparent;font-size:11px}.article-comment p{margin:7px 0 0;white-space:pre-wrap}.comments-empty{padding:28px 0 8px;color:var(--muted);text-align:center;border-top:1px solid var(--border)}.article-code-block{margin:26px 0;overflow:hidden;color:#e7e1ea;border:1px solid #3c3746;border-radius:15px;background:#17161c;box-shadow:0 14px 34px #0000002e;text-align:left}.article-code-toolbar{min-height:48px;padding:11px 14px 5px 20px;display:flex;align-items:center;justify-content:space-between;gap:14px;background:transparent}.article-code-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;opacity:0;visibility:hidden;transform:translateY(-3px);pointer-events:none;transition:opacity .16s ease,visibility .16s ease,transform .16s ease}.article-code-block:hover .article-code-actions,.article-code-block:focus-within .article-code-actions,.article-code-block.show-controls .article-code-actions{opacity:1;visibility:visible;transform:none;pointer-events:auto}.article-code-language{color:#b9b2c2;font:700 15px/1.1 Monaco,Cascadia Mono,SFMono-Regular,Consolas,monospace;letter-spacing:.04em}.article-code-block.language-html .article-code-language{color:#ff8f9c}.article-code-block.language-css .article-code-language{color:#73c8e8}.article-code-block.language-javascript .article-code-language,.article-code-block.language-js .article-code-language{color:#f2cd69}.article-code-block.language-typescript .article-code-language,.article-code-block.language-ts .article-code-language{color:#6fb5ff}.article-code-block.language-json .article-code-language{color:#b8db83}.article-code-block.language-python .article-code-language,.article-code-block.language-py .article-code-language{color:#82b8ef}.article-code-actions button{width:31px;min-height:31px;padding:6px;display:grid;place-items:center;color:#aaa3b1;border:1px solid transparent;border-radius:8px;background:transparent}.article-code-actions button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.article-code-actions button:hover{color:#fff;border-color:#686173;background:#34303c}.article-code-scroll{max-width:100%;overflow:auto}.article-code-block pre{min-width:max-content;margin:0;padding:10px 20px 20px;color:#e7e1ea;background:transparent;font:13.5px/1.78 Monaco,Cascadia Mono,SFMono-Regular,Segoe UI Mono,Consolas,monospace;font-synthesis:none;letter-spacing:.005em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-tab-size:2;tab-size:2}.article-code-line{display:grid;grid-template-columns:0 minmax(0,1fr);min-height:1.72em;transition:grid-template-columns .32s cubic-bezier(.22,.75,.18,1)}.article-code-block pre.has-line-numbers .article-code-line{grid-template-columns:36px minmax(0,1fr)}.article-code-line-number{width:0;max-width:0;padding-right:0;overflow:hidden;color:#6e6876;opacity:0;transform:translate(-8px);text-align:right;-webkit-user-select:none;user-select:none;transition:width .32s cubic-bezier(.22,.75,.18,1),max-width .32s cubic-bezier(.22,.75,.18,1),padding-right .32s cubic-bezier(.22,.75,.18,1),opacity .2s ease-in-out,transform .32s cubic-bezier(.22,.75,.18,1)}.article-code-block pre.has-line-numbers .article-code-line-number{width:36px;max-width:36px;padding-right:14px;opacity:1;transform:none}.article-code-line code{color:inherit;background:transparent;font:inherit;white-space:pre}.code-cjk{color:inherit;font-family:Georgia,Songti SC,STSong,serif;font-weight:400;letter-spacing:0}.code-comment{color:#7f8b7f;font-style:italic}.code-tag{color:#ff8f9c}.code-string{color:#c7de8a}.code-number{color:#efb47b}.code-keyword{color:#c9a5ff}.code-property{color:#83c8e6}.article-code-block.is-fullscreen{position:fixed;z-index:1200;top:14px;right:14px;bottom:14px;left:14px;margin:0;display:flex;flex-direction:column;border-radius:18px;box-shadow:0 0 0 100vmax #08070adb,0 24px 80px #0000008c}.article-code-block.is-fullscreen .article-code-scroll{flex:1}.article-code-block.is-fullscreen pre{min-height:100%}@media (max-width: 900px){.article-detail-layout{grid-template-columns:1fr}.article-side-column{position:static;max-height:none;overflow:visible}.author-profile-card{position:static;display:grid;grid-template-columns:auto 1fr;column-gap:16px}.author-profile-avatar{grid-row:1 / 4;margin:0}.author-profile-card .section-kicker,.author-profile-card h2,.author-profile-card>p:not(.section-kicker){grid-column:2}.author-stat,.author-links{grid-column:1 / -1}.author-links{grid-template-columns:1fr 1fr}}@media (max-width: 620px){.rich-content-editor{min-height:430px;padding:16px}.toolbar-popover{position:fixed;top:auto;right:14px;bottom:78px;left:14px}.color-menu,.highlight-menu{width:auto;min-width:0;transform:none}.color-swatch-grid{grid-template-columns:repeat(6,1fr)}.toolbar-group{padding-right:0;border-right:0}.toolbar-import-button{margin-left:0}.author-links,.article-pagination{grid-template-columns:1fr}.article-pagination button:last-child{text-align:left}.comments-card-head{align-items:flex-start;flex-direction:column}.comment-compose{grid-template-columns:1fr}.article-code-toolbar{align-items:flex-start}.article-code-actions{max-width:calc(100% - 52px)}.article-code-block pre{padding:15px 14px;font-size:12px}}.blog-page .article-grid,.my-articles-page .article-grid{width:min(1040px,100%);grid-template-columns:minmax(0,1fr)}.blog-page .article-card{grid-template-columns:220px minmax(0,1fr)}.blog-page .article-card-body>p{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3}.blog-search-overlay{position:fixed;z-index:900;top:0;right:0;bottom:0;left:0;padding:24px;display:grid;place-items:center;background:#18121694;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.blog-search-modal{width:min(680px,100%);overflow:hidden;border:1px solid color-mix(in srgb,var(--accent) 22%,var(--border));border-radius:24px;background:color-mix(in srgb,var(--panel) 98%,transparent);box-shadow:0 28px 80px #1c131757}.blog-search-modal>header{padding:24px 26px 19px;display:flex;align-items:flex-start;justify-content:space-between;gap:20px;border-bottom:1px solid var(--border)}.blog-search-modal h2{margin:3px 0 0;font-family:Georgia,Songti SC,serif;font-size:28px}.blog-search-modal .modal-close{flex:0 0 auto}.blog-search-keyword{padding:22px 26px 10px;display:grid;gap:8px}.blog-search-keyword span,.blog-search-filter-grid label>span{color:var(--muted);font-size:12px;font-weight:700}.blog-search-keyword input{height:50px;margin:0;font-size:16px}.blog-search-filter-grid{padding:10px 26px 24px;display:grid;grid-template-columns:1fr 1fr;gap:16px}.blog-search-filter-grid label{display:grid;gap:8px}.blog-search-filter-grid input,.blog-search-filter-grid select{height:44px;margin:0}.blog-search-modal>footer{padding:16px 26px 22px;display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--border)}.blog-search-summary{width:min(1040px,100%);margin:0 auto 20px;padding:12px 14px;display:flex;align-items:center;gap:12px;border:1px solid var(--border);border-radius:15px;background:color-mix(in srgb,var(--panel) 84%,transparent)}.blog-search-summary>span{flex:0 0 auto;font-weight:700}.blog-search-summary>div{flex:1;display:flex;flex-wrap:wrap;gap:7px}.blog-search-summary em{padding:4px 9px;color:var(--accent-2);border-radius:999px;background:color-mix(in srgb,var(--accent) 10%,transparent);font-size:11px;font-style:normal}.blog-search-summary button{padding:6px 10px;white-space:nowrap}@media (max-width: 700px){.blog-page .article-card{grid-template-columns:1fr}.blog-page .article-card .article-cover{min-height:185px}.blog-search-overlay{padding:14px}.blog-search-modal{max-height:calc(100vh - 28px);overflow:auto;border-radius:19px}.blog-search-filter-grid{grid-template-columns:1fr}.blog-search-summary{align-items:flex-start;flex-wrap:wrap}.blog-search-summary>div{order:3;flex-basis:100%}}.sticky-wall-page{position:relative;height:calc(100vh - 68px);height:calc(100dvh - 68px);min-height:0;overflow:hidden;padding:0;background:radial-gradient(circle at 12% 12%,color-mix(in srgb,var(--accent) 9%,transparent),transparent 25%),linear-gradient(color-mix(in srgb,var(--border) 34%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--border) 34%,transparent) 1px,transparent 1px),var(--bg);background-size:auto,28px 28px,28px 28px,auto}.sticky-wall{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.sticky-wall.dragging{cursor:grabbing}.sticky-wall-canvas{position:absolute;left:50%;top:50%;width:1px;height:1px;transform-origin:center;will-change:transform;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.sticky-note{--note-rotate: 0deg;--note-x: 0px;--note-y: 0px;position:absolute;left:0;top:0;width:270px;min-height:220px;padding:42px 28px 24px;display:flex;flex-direction:column;color:#4b3a38;border:0;border-radius:3px 3px 14px;box-shadow:0 18px 34px #2f1f2533,inset 0 -18px 35px #6e4c440f;transform:translate(calc(-50% + var(--note-x)),calc(-50% + var(--note-y))) rotate(var(--note-rotate));transition:transform .18s ease,box-shadow .18s ease}.sticky-note:hover{z-index:90!important;transform:translate(calc(-50% + var(--note-x)),calc(-50% + var(--note-y) - 7px)) rotate(0) scale(1.025);box-shadow:0 24px 44px #2f1f2545}.sticky-note:after{content:"";position:absolute;right:0;bottom:0;border:16px solid transparent;border-right-color:#5a3c3717;border-bottom-color:#5a3c3717}.sticky-note.tone-rose{background:#f3c4cb}.sticky-note.tone-peach{background:#f5c9a9}.sticky-note.tone-cream{background:#f0dda8}.sticky-note.tone-sage{background:#c8d9bd}.sticky-note.tone-lavender{background:#d3c5df}.sticky-note.tone-sky{background:#bfd8df}.sticky-note-pin{position:absolute;top:14px;left:50%;width:14px;height:14px;border:3px solid rgba(255,255,255,.72);border-radius:50%;background:#b95d70;box-shadow:0 3px 6px #3c232847;transform:translate(-50%)}.sticky-note>p{margin:0 0 28px;white-space:pre-wrap;overflow-wrap:anywhere;font:18px/1.8 Georgia,Songti SC,serif}.sticky-note>footer{margin-top:auto;display:flex;align-items:flex-end;justify-content:space-between;gap:12px;color:#4b3a38b3;font-size:11px}.sticky-note>footer strong{color:#744c53;font-size:12px}.sticky-note-delete{position:absolute;top:9px;right:9px;width:27px;height:27px;padding:0;color:#5c3a3ead;border:0;border-radius:50%;background:transparent;font-size:20px;line-height:1}.sticky-note-delete:hover{color:#8d394b;background:#ffffff52}.sticky-wall-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;gap:12px;color:var(--muted);text-align:center}.sticky-wall-empty span{color:var(--accent);font-size:34px}.message-wall-viewport-control{position:absolute;top:50%;right:18px;z-index:300;width:46px;min-height:214px;padding:9px 5px;display:grid;place-items:center;gap:7px;color:var(--muted);border:1px solid color-mix(in srgb,var(--accent) 20%,var(--border));border-radius:20px;background:color-mix(in srgb,var(--panel) 88%,transparent);box-shadow:0 12px 32px #2f1f252e;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transform:translateY(-50%)}.message-wall-viewport-control button{width:34px;min-height:30px;padding:4px 2px;border:0;border-radius:11px;color:var(--accent-2);background:color-mix(in srgb,var(--accent) 10%,transparent);font-size:10px}.message-wall-viewport-control input{width:126px;height:18px;margin:50px -50px;accent-color:var(--accent);cursor:pointer;transform:rotate(-90deg)}.message-wall-viewport-control output{color:var(--accent-2);font-size:10px;font-variant-numeric:tabular-nums}.sticky-wall-error{position:fixed;z-index:720;top:86px;left:50%;width:min(520px,calc(100vw - 32px));padding:11px 12px 11px 16px;display:flex;align-items:center;justify-content:space-between;gap:14px;color:var(--danger);border:1px solid color-mix(in srgb,var(--danger) 25%,var(--border));border-radius:14px;background:color-mix(in srgb,var(--panel) 96%,transparent);box-shadow:0 15px 42px #22161c3d;transform:translate(-50%)}.sticky-wall-error button{padding:2px 7px;border:0;background:transparent;font-size:19px}.message-wall-create{position:fixed;z-index:350;right:clamp(18px,3vw,34px);bottom:clamp(20px,4vw,38px);width:62px;height:62px;padding:0;color:#fff;border:0;border-radius:50%;background:linear-gradient(145deg,#cf7654,#a65337);box-shadow:0 13px 30px #5b302357;font-size:31px;font-weight:300}.message-wall-create:hover{transform:translateY(-2px);box-shadow:0 17px 36px #5b30236b}.message-wall-compose-overlay{position:fixed;z-index:920;top:0;right:0;bottom:0;left:0;padding:20px;display:grid;place-items:center;background:#1812169e;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.message-wall-composer{width:min(570px,100%);padding:24px;border:1px solid color-mix(in srgb,var(--accent) 26%,var(--border));border-radius:22px;background:color-mix(in srgb,var(--panel) 98%,transparent);box-shadow:0 28px 80px #1c131761}.message-wall-composer>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.message-wall-composer>header span{color:var(--accent);font-size:10px;font-weight:800;letter-spacing:.16em}.message-wall-composer h2{margin-top:3px;font-family:Georgia,Songti SC,serif;font-size:27px}.message-wall-composer>header>button{width:34px;height:34px;padding:0;border-radius:50%;font-size:21px}.message-wall-composer textarea{width:100%;min-height:180px;margin:12px 0 0;padding:16px;resize:vertical;color:var(--text);border:1px solid var(--border);border-radius:15px;background:var(--panel-2);outline:none;font:16px/1.8 Georgia,Songti SC,serif}.message-wall-composer textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 13%,transparent)}.message-wall-composer-foot{margin-top:12px;display:flex;align-items:center;justify-content:space-between;gap:16px}.message-wall-composer-foot>span{color:var(--muted);font-size:11px}@media (max-width: 620px){.sticky-wall-page{height:calc(100vh - 58px);height:calc(100dvh - 58px)}.sticky-note{width:220px;min-height:185px;padding:38px 22px 20px}.sticky-note>p{font-size:16px}.message-wall-viewport-control{right:12px;min-height:194px;transform:translateY(-60%)}.message-wall-viewport-control input{width:108px;margin:42px -42px}.message-wall-create{width:56px;height:56px;right:16px;bottom:18px}.message-wall-composer{padding:20px 16px;border-radius:18px}.message-wall-composer-foot{align-items:stretch;flex-direction:column}.message-wall-composer-foot button{width:100%}}:root{--motion-fast: .12s;--motion-normal: .18s;--motion-enter: .22s;--motion-ease: cubic-bezier(.2, .75, .25, 1)}:is(button,[role=button],input[type=button],input[type=submit],input[type=reset]){--control-hover-scale: 1.025;--control-press-scale: .96;-webkit-tap-highlight-color:transparent;transition:color var(--motion-fast) ease,background-color var(--motion-normal) ease,border-color var(--motion-normal) ease,box-shadow var(--motion-normal) ease,opacity var(--motion-normal) ease,filter var(--motion-fast) ease,scale var(--motion-normal) var(--motion-ease),transform var(--motion-normal) var(--motion-ease)}@media (hover: hover) and (pointer: fine){:is(button,[role=button],input[type=button],input[type=submit],input[type=reset]):not(:disabled):not([aria-disabled=true]):not([aria-busy=true]):hover{scale:var(--control-hover-scale);filter:brightness(1.075)}}:is(button,[role=button],input[type=button],input[type=submit],input[type=reset]):not(:disabled):not([aria-disabled=true]):not([aria-busy=true]):is(:active,[data-ui-pressed=true]){scale:var(--control-press-scale);filter:brightness(.94);transition-duration:70ms}:is(button,[role=button],input[type=button],input[type=submit],input[type=reset]):focus-visible{outline:2px solid var(--accent);outline-offset:4px}:is(button,[role=button],input[type=button],input[type=submit],input[type=reset]):is(:disabled,[aria-disabled=true]){scale:1;filter:none;cursor:not-allowed}:is(.brand-button,.date-picker-trigger,.article-attachment,.friend-item,.room-main,.queue-title,.player-overlay,.timer-card,.article-card,.message-card,.cover-upload-preview,.draft-list>button){--control-hover-scale: 1;--control-press-scale: .992}:is(.rich-editor-toolbar button,.calendar-days button,.emoji-picker button,.modal-close,.player-icon-button){--control-hover-scale: 1.055;--control-press-scale: .92}:is(.blog-create-fab,.blog-search-fab,.timer-add-button,.gallery-upload-button,.message-wall-create,.friend-adder-button){--control-hover-scale: 1.07;--control-press-scale: .92}.gallery-photo-card{--control-hover-scale: 1;--control-press-scale: 1;transition:transform .82s var(--motion-ease),opacity .42s ease,box-shadow .22s ease,filter var(--motion-fast) ease;transition-delay:var(--gallery-delay),var(--gallery-delay),0s,0s}.gallery-wall.revealed .gallery-photo-card:is(:hover,:focus-visible){transition-delay:0s;transition-duration:.28s,.18s,.18s,.12s}.photo-exact-clone{scale:1!important;filter:none!important}.gallery-detail-shell .photo-detail-close{transition:opacity .2s ease .18s,color var(--motion-fast) ease,scale var(--motion-normal) var(--motion-ease),transform var(--motion-normal) var(--motion-ease),filter var(--motion-fast) ease}button[aria-busy=true]{cursor:progress;opacity:.8}button[aria-busy=true]:before{content:"";display:inline-block;flex:0 0 auto;width:.85em;height:.85em;margin-inline-end:.45em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;vertical-align:-.1em;animation:control-spin .7s linear infinite}.rich-editor-toolbar button[aria-busy=true]{display:inline-flex;align-items:center;justify-content:center}.rich-editor-toolbar button[aria-busy=true]:before{margin:0}.rich-editor-toolbar button[aria-busy=true]>svg{display:none}.article-attachment[aria-busy=true]:before{display:none}.article-attachment[aria-busy=true]>span:first-child{animation:control-spin .7s linear infinite}@keyframes control-spin{to{rotate:360deg}}.nav-user-button>svg,.theme-toggle>svg,.date-picker-trigger>svg{transition:rotate var(--motion-normal) var(--motion-ease),scale var(--motion-normal) var(--motion-ease)}.nav-user-button[aria-expanded=true]>svg{rotate:180deg}.theme-toggle:hover>svg{rotate:16deg}.date-picker-trigger[aria-expanded=true]>svg{scale:1.12}html.theme-transitioning::view-transition-new(root){animation-duration:.48s}:is(.toolbar-popover,.recent-tag-menu,.calendar-popover,.emoji-picker,.user-dropdown,.photo-action-menu,.gallery-upload-panel){animation:control-popover-in var(--motion-enter) var(--motion-ease)}:is(.timer-modal,.blog-search-modal,.exit-prompt,.message-wall-composer,.friend-add-modal){animation:control-dialog-in var(--motion-enter) var(--motion-ease)}.draft-drawer{animation:control-drawer-in .26s var(--motion-ease)}@keyframes control-popover-in{0%{opacity:0;translate:0 -5px}to{opacity:1;translate:0 0}}@keyframes control-dialog-in{0%{opacity:0;translate:0 8px;scale:.985}to{opacity:1;translate:0 0;scale:1}}@keyframes control-drawer-in{0%{opacity:0;translate:18px 0}to{opacity:1;translate:0 0}}@media (hover: none){:is(.blog-create-fab,.blog-search-fab,.article-card,.room-card,.rich-editor-toolbar button):hover{transform:none}.theme-toggle:hover>svg{rotate:0deg}button.modal-close:hover,.gallery-detail-shell .photo-detail-close:hover{transform:none}}@media (prefers-reduced-motion: reduce){:is(button,[role=button],input[type=button],input[type=submit],input[type=reset]),:is(button,[role=button]) svg{transition-duration:.01ms!important;transition-delay:0s!important;scale:1!important}:is(.toolbar-popover,.recent-tag-menu,.calendar-popover,.emoji-picker,.user-dropdown,.photo-action-menu,.gallery-upload-panel,.timer-modal,.blog-search-modal,.exit-prompt,.message-wall-composer,.friend-add-modal,.draft-drawer){animation:none!important}button[aria-busy=true]:before,.article-attachment[aria-busy=true]>span:first-child,.gallery-scroll-hint svg{animation:none!important}:is(.theme-toggle,.nav-user-button)>svg{rotate:0deg!important}:is(.blog-create-fab,.blog-search-fab,.article-card,.room-card,.rich-editor-toolbar button):hover{transform:none}.gallery-wall.revealed .gallery-photo-card:is(:hover,:focus-visible){transform:translate(calc(-50% + var(--gallery-x)),calc(-50% + var(--gallery-y) + var(--gallery-offset))) rotate(var(--gallery-rotate))!important}.article-code-line,.article-code-line-number{transition:none!important}.rich-editor-toolbar button:active,button.modal-close:hover,.gallery-detail-shell .photo-detail-close:hover{transform:none!important}.gallery-detail-overlay,.gallery-detail-shell,.gallery-detail-shell .photo-detail-info,.gallery-detail-shell .photo-detail-close{transition-duration:.01ms!important;transition-delay:0s!important}.sticky-note:hover{transform:translate(calc(-50% + var(--note-x)),calc(-50% + var(--note-y))) rotate(var(--note-rotate))}html.theme-transitioning::view-transition-new(root){animation-duration:.01ms}}@media (forced-colors: active){:is(button,[role=button]):focus-visible{outline-color:Highlight}}
