@font-face{font-family:"LINE Seed KR";src:url("/fonts/LINESeedKR-Rg.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"LINE Seed KR";src:url("/fonts/LINESeedKR-Bd.woff2") format("woff2");font-weight:700;font-display:swap}
:root{font-family:"LINE Seed KR",sans-serif;font-synthesis:none;-webkit-font-smoothing:antialiased;color:var(--ink);background:var(--canvas);--canvas:#f5f6f8;--surface:#fff;--ink:#202735;--muted:#596373;--line:#e1e5eb;--accent:#2454d6;--accent-hover:#1d43ac;--soft:#edf2ff;--success:#237355;--danger:#b53737;--radius:6px;--panel-radius:12px;--body:16px;--label:14px;--caption:14px;--heading:16px;--title:28px;--display:28px}
*{box-sizing:border-box}body{margin:0;font-size:var(--body);line-height:1.6}button,input,textarea,select{font:inherit;color:inherit}button,a{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0;background:none}button,a{transition:background-color .15s,color .15s,border-color .15s}button:disabled{cursor:default;color:#6b7482;background:#e8ebf0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:3px}button:active:not(:disabled){transform:scale(.98)}a{color:inherit;text-decoration:none}svg{vertical-align:middle;flex-shrink:0}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:700;text-wrap:balance;line-height:1.35}p{text-wrap:pretty}h2{font-size:var(--heading)}h3{font-size:16px}.muted{color:var(--muted)}.small{font-size:var(--label)}.primary,.outline,.text-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 20px;border-radius:var(--radius);font-size:var(--label);font-weight:400;line-height:1.4}.primary{background:var(--accent);color:white;border:1px solid transparent}.primary:hover:not(:disabled){background:var(--accent-hover)}.outline{border:1px solid #a8b3c2;background:var(--surface)}.outline:hover:not(:disabled){background:var(--soft);border-color:var(--accent)}.text-btn{padding-inline:8px}.text-btn:hover{color:var(--accent);background:var(--soft)}.small.outline{min-height:40px;padding:8px 12px}.full{width:100%;margin-top:24px}.pill{display:inline-flex;align-items:center;gap:8px;font-size:var(--label);color:var(--muted)}.site-header{height:80px;max-width:1360px;margin:auto;padding:0 48px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line);background:var(--surface)}body:not(.playing){background:var(--surface)}.brand{display:inline-flex;align-items:center;gap:10px;font-size:16px;font-weight:700;white-space:nowrap;letter-spacing:-.5px}.brand-symbol{color:var(--accent);display:flex;width:32px;height:32px}.brand-symbol svg{width:100%;height:100%}.brand-sub{display:none}.header-right{display:flex;align-items:center;gap:20px;font-size:var(--label)}.landing{max-width:1160px;margin:auto;padding:0 0 32px}.hero{display:grid;grid-template-columns:1.3fr 1fr;align-items:center;gap:96px;padding:72px 0 64px}.eyebrow{display:block;font-size:var(--label);color:var(--accent);font-weight:700;margin-bottom:16px}.hero h1{font-size:var(--display);letter-spacing:-.5px;line-height:1.25}.hero-copy>p{margin-top:24px;color:var(--muted);line-height:1.8}.hero-actions{display:flex;gap:12px;margin-top:24px}.footnote{display:block;font-size:var(--caption);color:var(--muted);margin-top:16px}.join-panel{border:1px solid var(--line);border-radius:var(--panel-radius);padding:32px;background:var(--canvas)}.join-panel h2{font-size:16px}.join-panel p{font-size:var(--label);color:var(--muted);margin:12px 0 24px}.join-panel label{display:block;font-size:var(--label);font-weight:400}.join-panel input{margin:8px 0 12px;width:100%;height:56px;background:white;border:1px solid #a8b3c2;border-radius:6px;padding:12px 16px;letter-spacing:1px;font-size:16px;font-variant-numeric:tabular-nums}.join-panel .outline{width:100%}.section-heading{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:24px}.section-heading span{font-size:var(--label);color:var(--muted)}.tool-grid{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:12px;overflow:hidden}.tool-card{padding:24px;text-align:left;position:relative;background:var(--surface);border-right:1px solid var(--line)}.tool-card:last-child{border-right:0}.tool-card:hover{background:var(--canvas)}.tool-card h3{display:flex;justify-content:space-between;align-items:center;margin:20px 0 8px}.tool-card p{font-size:var(--label);color:var(--muted)}.tool-preview{width:100%;height:112px;color:var(--accent)}.tool-index{font-size:var(--caption);font-variant-numeric:tabular-nums;color:var(--muted)}.utility-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:24px}.utility-card{display:flex;align-items:center;gap:20px;text-align:left;padding:24px 0;border-bottom:1px solid var(--line)}.utility-card>svg{color:var(--accent)}.utility-card>span{flex:1}.utility-card h3{font-size:16px;margin-bottom:8px}.utility-card p{font-size:var(--label);color:var(--muted)}.utility-card:hover h3{color:var(--accent)}.home-bottom{padding:24px 0;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:var(--label);color:var(--muted)}.clear-local{font-size:var(--caption);color:var(--muted)}.workspace{max-width:1360px;margin:auto;display:grid;grid-template-columns:224px 1fr;min-height:calc(100vh - 80px)}.sidebar{padding:32px 16px;border-right:1px solid var(--line);background:var(--surface)}.nav-heading{font-size:var(--caption);color:var(--muted);padding:0 16px;margin-bottom:16px}.nav-item{display:flex;align-items:center;gap:12px;width:100%;padding:12px 16px;min-height:48px;border-radius:6px;font-size:var(--label);margin-bottom:8px;text-align:left;white-space:nowrap}.nav-item>span{display:flex}.nav-item.active{color:var(--accent);background:var(--soft);font-weight:700}.nav-item:hover:not(:disabled){background:var(--canvas)}.nav-item:disabled{background:none}.nav-item.active:disabled{background:var(--soft);color:var(--accent)}.nav-item b{margin-left:auto}.sidebar-note{margin:48px 16px 0;font-size:var(--caption);color:var(--muted);line-height:1.8}.work-main{padding:32px 40px;min-width:0}.work-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:24px}.breadcrumb{font-size:var(--caption);color:var(--muted);margin-bottom:12px}.work-heading h1{font-size:var(--title);letter-spacing:-.7px}.work-heading p{font-size:var(--label);color:var(--muted);margin-top:8px}.members-bar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;border-block:1px solid var(--line);padding:16px 0;margin-bottom:24px}.members-label{display:flex;gap:8px;align-items:center;font-size:var(--label)}.members-label>span{font-size:var(--caption);color:var(--muted)}.member-list{display:flex;gap:8px;flex-wrap:wrap}.member-chip{display:flex;align-items:center;gap:8px;font-size:var(--label);background:white;border:1px solid var(--line);border-radius:6px;min-height:40px;padding:0 4px 0 8px}.avatar{display:grid;place-items:center;width:24px;height:24px;background:var(--soft);color:var(--accent);font-size:var(--caption);border-radius:4px}.host-mark{font-size:var(--caption);color:var(--muted)}.member-name{padding:8px 0;min-height:40px}.member-name:hover{color:var(--accent)}.remove{width:32px;height:40px;color:var(--muted);font-size:16px}.add-member{width:40px;height:40px;border:1px solid #a8b3c2;border-radius:6px;font-size:16px}.game-area{border:1px solid var(--line);border-radius:12px;background:white;overflow:hidden}.panel-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 24px;border-bottom:1px solid var(--line);font-size:var(--label);min-height:72px}.panel-toolbar>button{flex-shrink:0}.segmented{display:flex;gap:4px;padding:4px;background:var(--canvas);border-radius:6px}.segmented button{padding:8px 12px;min-height:40px;border-radius:4px;font-size:var(--label);color:var(--muted)}.segmented .selected{color:var(--accent);background:white;box-shadow:0 1px 3px #20273515;font-weight:700}.race-scene{margin:24px;padding:24px;background:var(--canvas);border-radius:8px}.track-head{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:var(--label);font-weight:700;margin-bottom:24px}.race-clock{font-variant-numeric:tabular-nums;color:var(--accent);font-size:var(--caption)}.race-lane{display:flex;gap:16px;align-items:center;min-height:64px;border-bottom:1px solid var(--line)}.race-lane:last-child{border:0}.lane-name{width:64px;font-size:var(--label);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lane-path{position:relative;flex:1;height:48px;border-bottom:1px dashed #c4ccd8}.lane-number{display:none}.racer{position:absolute;top:4px;left:0;width:40px;height:40px;display:grid;place-items:center;font-size:var(--label);font-weight:700}.racer.marble{border-radius:50%;background:var(--avatar);color:var(--ink);border:2px solid #20273520}.racer.horse{color:var(--accent)}.racer.horse svg{width:40px;height:40px}.racer-name{display:none}.finish-line{position:absolute;right:0;top:0;width:6px;height:100%;background:repeating-linear-gradient(0deg,#a8b3c2 0 6px,transparent 6px 12px)}.track-bottom{display:flex;justify-content:space-between;margin:16px 0 0 80px;color:var(--muted);font-size:var(--caption)}.game-controls{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 24px 24px}.game-controls p{font-size:var(--label);color:var(--muted)}.game-controls strong{color:var(--ink)}.start-button{white-space:nowrap}.result-list{margin:0 24px 24px;border-top:2px solid var(--ink)}.result-list>div{display:flex;align-items:center;gap:16px;min-height:56px;padding:12px 8px;border-bottom:1px solid var(--line);font-size:var(--label)}.result-list>div:first-child{background:var(--soft)}.result-list>div>span:last-child{margin-left:auto}.result-rank{width:24px;color:var(--accent);font-weight:700;font-variant-numeric:tabular-nums}.workspace-note{font-size:var(--caption);color:var(--muted);margin-top:20px;line-height:1.8}.code-badge{display:flex;align-items:center;gap:12px;min-height:40px;border:1px solid var(--line);border-radius:6px;padding:8px 12px;font-size:var(--caption);background:white}.code-badge strong{font-size:16px;letter-spacing:2px;font-variant-numeric:tabular-nums}.connection{display:flex;gap:8px;align-items:center;font-size:var(--caption);color:var(--success)}.connection i{width:6px;height:6px;border-radius:50%;background:currentColor}.connection.offline{color:var(--danger)}.dislike-row,.time-tools{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:20px 24px;font-size:var(--label)}.actor-label,.dislike-row label{display:flex;align-items:center;gap:8px}.my-name{font-weight:700}select{background:white;border:1px solid #a8b3c2;border-radius:6px;padding:8px 28px 8px 12px;min-height:40px;max-width:220px;font-size:var(--label)}.ladder-board{overflow:auto;margin:0 24px 24px;padding:16px;background:var(--canvas);border-radius:8px}.ladder-board svg{width:100%;display:block}.svg-name{font-family:inherit;font-size:14px;font-weight:700;fill:var(--ink)}.svg-role{font-family:inherit;font-size:14px;fill:var(--ink)}.ladder-route{stroke-dasharray:1;stroke-dashoffset:1;animation:trace 5s linear forwards}.ladder-route.done{stroke-dashoffset:0;animation:none}@keyframes trace{to{stroke-dashoffset:0}}.heat-legend{display:flex;gap:4px;align-items:center;font-size:var(--caption);margin-left:auto}.heat-legend i{height:16px;width:20px}.heat-legend span{margin:0 4px}.schedule-scroll{overflow:auto;max-height:560px;border-block:1px solid var(--line);margin:0 24px;overscroll-behavior:contain}.schedule{display:grid;grid-template-columns:64px repeat(var(--days),minmax(80px,1fr));touch-action:none;user-select:none;min-width:max-content}.schedule.scroll-mode,.schedule.scroll-mode button{touch-action:pan-x pan-y}.schedule.scroll-mode{cursor:grab}.time-corner,.date-head{position:sticky;top:0;z-index:3;background:white;border-bottom:1px solid var(--line);padding:12px 0;text-align:center;font-size:var(--caption);color:var(--muted)}.time-corner{left:0;z-index:4;padding-top:32px}.date-head strong{display:block;font-size:var(--body);color:var(--ink);margin-top:4px}.time-label{position:sticky;left:0;z-index:2;background:white;font-size:var(--caption);color:var(--muted);display:grid;place-items:center;height:32px;font-variant-numeric:tabular-nums}.time-cell{border:1px solid white;min-height:32px;min-width:80px;padding:0;color:white;font-size:var(--label);border-radius:0}.time-cell:active{transform:none!important}.time-cell.mine{box-shadow:inset 0 0 0 2px #183a93}.time-cell.painting{background:#aac0f8!important}.time-cell:focus-visible{outline-offset:-3px}.schedule-bottom{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:8px 24px;font-size:var(--caption)}.common-times{display:flex;flex-wrap:wrap;gap:8px;margin:16px 24px 24px;max-height:160px;overflow:auto;font-size:var(--label)}.time-suggestion{padding:10px 12px;border:1px solid var(--line);border-radius:6px;font-size:var(--caption);min-height:40px}.time-suggestion.chosen{background:var(--soft);color:var(--accent);border-color:var(--accent)}.confirmed{display:flex;align-items:center;gap:12px;background:#edf6f1;color:var(--success);font-size:var(--label);font-weight:700;padding:16px 20px;margin:16px 24px;border-radius:6px}.vote-content{max-width:740px;margin:auto;padding:32px}.vote-heading h2{font-size:var(--body)}.vote-heading p{font-size:var(--label);color:var(--muted);margin:12px 0 32px}.vote-heading>svg{display:none}.vote-status{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px;font-size:var(--caption)}.vote-options{display:flex;flex-direction:column;gap:12px}.vote-option{width:100%;position:relative;display:flex;align-items:center;gap:16px;padding:16px;border:1px solid #a8b3c2;border-radius:6px;text-align:left;overflow:hidden;min-height:64px}.vote-option>span:not(.vote-fill),.vote-option>strong{z-index:1}.vote-option strong{font-size:var(--body);overflow-wrap:anywhere}.vote-option:disabled{color:var(--ink);background:white}.vote-option.picked{border-color:var(--accent);background:var(--soft)}.option-letter{display:grid;place-items:center;width:28px;height:28px;font-size:var(--caption);border:1px solid var(--line);border-radius:4px;background:white;flex-shrink:0}.vote-number{margin-left:auto;font-size:var(--label);font-weight:700;white-space:nowrap}.vote-number i{display:block;width:20px;height:20px;border:1px solid #a8b3c2;border-radius:50%}.vote-fill{position:absolute;left:0;top:0;bottom:0;width:var(--amount);background:var(--canvas)}.winning .vote-fill{background:#dce6ff}.revealed .vote-fill{animation:vote-reveal 1.2s cubic-bezier(.2,.8,.2,1) both;animation-delay:var(--delay)}@keyframes vote-reveal{from{width:0}to{width:var(--amount)}}.vote-bottom{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:24px}.vote-bottom .primary{white-space:nowrap}.privacy-note{font-size:var(--caption);color:var(--muted);line-height:1.8;margin-top:24px}.public-votes{font-size:var(--label);color:var(--muted);margin-top:16px}.wheel-layout{display:grid;grid-template-columns:1.15fr 1fr;align-items:center;gap:40px;padding:40px}.wheel-wrap{position:relative;max-width:360px;margin:auto;width:100%;padding-top:12px}.wheel-wrap svg{width:100%}.wheel-pointer{position:absolute;top:0;left:calc(50% - 10px);width:0;height:0;border-left:10px solid transparent;border-right:10px solid transparent;border-top:24px solid var(--ink);z-index:1}.wheel-label{font-family:inherit;font-size:14px;fill:var(--ink);font-weight:700}.wheel-side h2{font-size:var(--heading);margin:12px 0 16px}.wheel-side>p{font-size:var(--label);line-height:1.8}.wheel-side .start-button{margin:24px 0 16px}.wheel-side .small{font-size:var(--caption)}.wheel-winner{font-size:var(--heading);font-weight:700;color:var(--accent);overflow-wrap:anywhere}.wheel-items{display:flex;gap:12px 24px;justify-content:center;flex-wrap:wrap;padding:24px;border-top:1px solid var(--line);font-size:var(--caption)}.wheel-items>span{display:flex;align-items:center;gap:8px}.wheel-items i{width:8px;height:8px;border-radius:2px}dialog{width:min(480px,calc(100% - 32px));border:1px solid var(--line);border-radius:16px;background:white;color:var(--ink);padding:32px;max-height:88vh;overflow:auto;box-shadow:0 16px 48px #20273525}dialog::backdrop{background:#20273566}.modal-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px}.modal-head h2{font-size:var(--heading)}.icon-btn{width:40px;height:40px;display:grid;place-items:center;border-radius:6px;flex-shrink:0}.icon-btn:hover{background:var(--canvas)}.modal-head~p{font-size:var(--label)}dialog label{display:block;font-size:var(--label);font-weight:700;margin-top:24px}dialog input:not([type=checkbox]),dialog textarea{display:block;width:100%;padding:12px;border:1px solid #a8b3c2;border-radius:6px;background:white;margin-top:8px}dialog textarea{resize:vertical;line-height:1.6}.code-input{text-transform:uppercase;letter-spacing:1px;font-size:16px}.note{padding:16px;background:var(--canvas);border-radius:6px;color:var(--muted);font-size:var(--label);margin-top:24px}.form-grid{display:flex;gap:12px}.form-grid>*{flex:1;min-width:0}.checkbox{display:flex!important;gap:12px;align-items:center}.checkbox input{accent-color:var(--accent);height:20px;width:20px}.result-preview{width:100%;border:1px solid var(--line);border-radius:8px;margin-bottom:20px;max-height:50vh;object-fit:contain}.result-preview~p{margin-top:16px}#toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,8px);background:var(--ink);color:white;padding:16px 24px;border-radius:8px;font-size:var(--label);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:100;max-width:calc(100vw - 32px);width:max-content}#toast.show{opacity:1;transform:translate(-50%,0)}
.home-guides{max-width:1160px;margin:24px auto 0;padding:32px 0;border-top:1px solid var(--line)}.home-guides>p{font-size:var(--label);color:var(--muted);margin:12px 0 24px}.guide-links{display:grid;grid-template-columns:1fr 1fr;gap:0 32px}.guide-links>a{padding:20px 0;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:8px}.guide-links strong{font-size:var(--body)}.guide-links span{font-size:var(--label);color:var(--muted)}.guide-links a:hover strong{color:var(--accent)}.content-footer{display:flex;justify-content:space-between;align-items:center;gap:24px;border-top:1px solid var(--line);padding:32px 0;margin-top:48px;font-size:var(--label)}.content-footer>a{font-weight:700}.content-footer nav{display:flex;gap:24px;flex-wrap:wrap;font-size:var(--caption)}.content-footer nav a:hover{text-decoration:underline}.playing #discovery-content{display:none}.guide-page{max-width:800px;margin:48px auto 80px;padding:0 24px}.guide-back{font-size:var(--label);color:var(--muted);display:block;margin-bottom:24px}.guide-page h1{font-size:28px;letter-spacing:-.8px;word-break:keep-all}.guide-intro{font-size:16px;line-height:1.9;color:var(--muted);margin:24px 0 32px}.guide-page article{margin:48px 0}.guide-page article section{margin:40px 0}.guide-page h2{margin:32px 0 16px}.guide-page article p{font-size:var(--body);line-height:1.9;word-break:keep-all}.guide-page article a{text-decoration:underline;text-underline-offset:4px}.guide-page details{border-bottom:1px solid var(--line);padding:20px 0}.guide-page summary{font-weight:700;cursor:pointer}.guide-page details p{margin-top:16px}.guide-cta{padding:24px;background:var(--canvas);border-radius:12px;margin-bottom:48px}.guide-cta p{font-weight:700;margin-bottom:20px}.guide-cta a{margin:0 8px 8px 0}.guide-page+.content-footer{max-width:1000px;margin:0 auto;padding-inline:24px}.ad-space{margin:48px 0;padding:24px 0;min-height:180px;border-block:1px solid var(--line);text-align:center}.ad-space>span{display:block;color:var(--muted);font-size:var(--caption);margin-bottom:16px}.ad-space ins{min-height:120px}.info-page article>p{margin-top:16px}
@media(max-width:1256px){.landing,.home-guides{margin-inline:48px}.hero{gap:48px}.work-main{padding:32px 24px}}
@media(max-width:1000px){.workspace{grid-template-columns:192px 1fr}.sidebar{padding-inline:8px}.work-main{padding:24px}.hero{gap:32px}.hero h1{font-size:28px}.wheel-layout{padding:24px;gap:24px}.panel-toolbar{flex-wrap:wrap}.vote-bottom{flex-wrap:wrap}.home-bottom{align-items:flex-start}.tool-card{padding:20px}}
@media(max-width:760px){:root{--display:28px;--title:28px;--heading:16px}.site-header{height:72px;padding:0 20px;gap:12px}.brand{font-size:16px;gap:8px}.brand-symbol{width:28px;height:28px}.desktop,.connection{display:none}.header-right{gap:8px}.header-right .pill{font-size:14px}.header-right .small.outline{padding:8px;font-size:14px}.landing,.home-guides{margin-inline:20px}.hero{grid-template-columns:1fr;padding:40px 0;gap:32px}.hero h1{font-size:var(--display)}.hero-copy>p{margin-top:20px}.hero-actions{margin-top:24px;gap:8px}.hero-actions>*{flex:1;padding-inline:12px}.join-panel{padding:24px}.section-heading{margin-bottom:20px}.section-heading>span{display:none}.tool-grid{grid-template-columns:1fr}.tool-card{border-right:0;border-bottom:1px solid var(--line);padding:20px}.tool-card:last-child{border-bottom:0}.tool-preview{height:88px}.tool-card h3{margin-top:12px}.utility-grid{grid-template-columns:1fr;gap:0;margin-top:8px}.utility-card{padding:24px 0;gap:16px}.utility-card h3{font-size:16px}.home-bottom{flex-direction:column;gap:8px;padding:24px 0 8px}.workspace{display:flex;flex-direction:column}.sidebar{display:flex;gap:8px;overflow:auto;padding:12px 16px;border-right:0;border-bottom:1px solid var(--line)}.nav-heading,.sidebar-note,.nav-item b{display:none}.nav-item{width:auto;flex-shrink:0;margin:0;padding:8px 12px;gap:8px}.nav-item svg{width:18px;height:18px}.work-main{padding:24px 16px}.breadcrumb{display:none}.work-heading{gap:12px;align-items:flex-start}.work-heading p{max-width:220px}.work-heading .outline{white-space:nowrap;padding:8px;font-size:14px}.members-bar{gap:12px}.members-label{width:100%}.panel-toolbar{padding:16px;gap:12px}.panel-toolbar>.muted{display:none}.panel-toolbar>strong{flex:1;min-width:100px}.panel-toolbar>button.small{display:inline-flex;font-size:14px;white-space:nowrap}.segmented button{font-size:14px;padding:8px 10px}.race-scene{margin:16px;padding:16px 12px}.track-head{font-size:14px;gap:8px}.race-lane{gap:8px}.lane-name{width:44px;font-size:14px}.track-bottom{margin-left:52px}.game-controls{padding:0 16px 20px;flex-direction:column;align-items:stretch;gap:16px}.result-list{margin-inline:16px}.code-badge{gap:8px;font-size:0}.code-badge strong{font-size:16px}.dislike-row,.time-tools{padding:16px;gap:12px}.dislike-row label{flex-wrap:wrap}.dislike-row select{max-width:180px}.ladder-board{margin:0 16px 20px}.heat-legend{margin-left:0}.schedule-scroll{margin:0 12px;max-height:440px}.schedule{grid-template-columns:56px repeat(var(--days),minmax(64px,1fr))}.time-cell{min-width:64px}.schedule-bottom{margin-inline:12px;flex-wrap:wrap;gap:0}.common-times,.confirmed{margin-inline:12px}.vote-content{padding:24px 16px}.vote-status{flex-wrap:wrap}.vote-option{padding:16px 12px;gap:12px}.vote-option strong{font-size:14px}.vote-bottom{flex-direction:column;align-items:stretch;gap:16px}.wheel-layout{grid-template-columns:1fr;padding:24px;gap:24px}.wheel-wrap{max-width:280px}.wheel-side{text-align:center}.wheel-side .start-button{width:100%}.wheel-items{padding:20px}.form-grid{gap:8px}dialog{padding:24px}.modal-head h2{font-size:16px}.guide-links{grid-template-columns:1fr}.content-footer{align-items:flex-start;flex-direction:column}.content-footer nav{gap:16px}.guide-page{margin:32px auto 48px;padding:0 20px}.guide-page h1{font-size:28px}.guide-intro{font-size:16px}.guide-page article{margin:32px 0}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-delay:0ms!important;transition:none!important}.ladder-route{stroke-dashoffset:0}}
.race-map-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:20px 24px 0}.race-map{display:flex;align-items:center;gap:16px;padding:16px;text-align:left;border:1px solid var(--line);border-radius:6px;background:white;min-width:0}.race-map.selected{border-color:var(--accent);background:var(--soft)}.race-map:disabled{color:var(--muted);background:var(--canvas)}.race-map.selected:disabled{color:var(--ink);background:var(--soft)}.race-map>svg{width:24px;height:88px;color:var(--accent)}.race-map>span{display:flex;flex-direction:column;gap:8px}.race-map strong{font-size:16px}.race-map:hover:not(:disabled){border-color:var(--accent)}@media(max-width:760px){.race-map-picker{padding:12px 12px 0;gap:8px}.race-map{flex-direction:column;gap:12px;padding:12px 4px;text-align:center}.race-map strong{font-size:14px}.race-map>svg{height:72px;width:20px}}
.game-controls>.start-button,.vote-bottom>.primary{margin-left:auto}@media(max-width:760px){.game-controls>.start-button{width:100%;margin-left:0}}
.marble-stage{display:grid;grid-template-columns:minmax(0,1fr) 160px;gap:20px;padding:24px}.marble-screen{min-width:0;background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden}.marble-hud{display:flex;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--line);font-size:14px;font-variant-numeric:tabular-nums}#marble-canvas{display:block;width:100%;height:600px}.race-ranking h2{font-size:16px;margin-bottom:16px}.race-ranking ol{padding:0;margin:0;list-style:none}.race-ranking li{font-size:14px;padding:8px 10px;margin-bottom:8px;border-left:3px solid var(--accent);background:var(--canvas)}.race-ranking p{font-size:14px;margin-top:20px}.playing:has(#marble-canvas) .work-main{padding-inline:24px}@media(max-width:760px){.marble-stage{grid-template-columns:1fr;padding:12px;gap:16px}#marble-canvas{height:520px}.marble-hud{font-size:14px;padding:12px}.race-ranking ol{display:flex;flex-wrap:wrap;gap:8px}.race-ranking li{margin:0}.race-ranking p{display:none}.playing:has(#marble-canvas) .work-main{padding-inline:16px}}
.marble-screen{position:relative}.finish-celebration{position:absolute;inset:41px 0 0;z-index:4;display:grid;place-items:center;pointer-events:none;visibility:hidden;opacity:0;background:radial-gradient(circle at center,#edf2ffcc 0,transparent 58%)}.finish-celebration.show{visibility:visible;opacity:1}.finish-card{display:flex;align-items:center;gap:14px;min-width:210px;padding:18px 24px;border:1px solid #b9cdfb;border-radius:8px;background:#fff;box-shadow:0 12px 36px #20273524;animation:finish-card 1.55s cubic-bezier(.2,.8,.2,1) both}.finish-card span{color:var(--accent);font-size:14px;font-weight:700}.finish-card strong{font-size:22px;overflow-wrap:anywhere}.finish-burst{position:absolute;left:50%;top:50%;width:1px;height:1px}.finish-burst i{position:absolute;width:7px;height:20px;border-radius:2px;background:var(--c);transform-origin:50% 0;animation:finish-confetti 1.45s cubic-bezier(.15,.7,.25,1) both;animation-delay:calc(var(--i)*18ms)}@keyframes finish-card{0%{opacity:0;transform:scale(.82) translateY(12px)}18%,100%{opacity:1;transform:scale(1) translateY(0)}}@keyframes finish-confetti{0%{opacity:0;transform:rotate(calc(var(--i)*30deg)) translateY(-30px) scale(.5)}16%{opacity:1}100%{opacity:0;transform:rotate(calc(var(--i)*30deg + 150deg)) translateY(-175px) scale(1)}}
.result-dialog{width:min(560px,calc(100% - 32px))}.result-dialog[open] .modal-head{animation:result-enter .24s ease-out both}.result-summary{border-top:2px solid var(--ink)}.result-summary-row{display:grid;grid-template-columns:minmax(72px,1fr) minmax(0,2.3fr);align-items:center;gap:20px;min-height:64px;padding:14px 12px;border-bottom:1px solid var(--line);animation:result-enter .28s ease-out both;animation-delay:calc((var(--row,0))*45ms)}.result-summary-row:first-child{background:var(--soft)}.result-summary-row span{color:var(--muted);font-size:14px;font-weight:700}.result-summary-row strong{font-size:16px;overflow-wrap:anywhere}.result-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:24px;animation:result-enter .28s .12s ease-out both}.result-actions>*{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px}@keyframes result-enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.confirmed #result-view{margin-left:auto;background:#fff;color:var(--ink)}.wheel-side .game-controls{padding:0;justify-content:flex-start}.wheel-side .game-controls>.start-button{margin-left:0}
@media(max-width:760px){.finish-celebration{inset:41px 0 0}.finish-card{min-width:180px;padding:16px 20px}.finish-card strong{font-size:18px}.result-actions{grid-template-columns:1fr}.confirmed{flex-wrap:wrap}.confirmed #result-view{width:100%;margin-left:0}.wheel-side .game-controls{padding:0}.wheel-side .game-controls>*{width:100%}}
@media(prefers-reduced-motion:reduce){.finish-burst{display:none}.finish-card{animation:none}.finish-celebration.show{opacity:1}.result-dialog[open] .modal-head,.result-summary-row,.result-actions{animation:none}}
.profile-emoji{display:inline-block;flex-shrink:0;vertical-align:middle;object-fit:contain}.profile-button{display:inline-flex;align-items:center;gap:8px}.member-chip{padding-left:6px}.profile-button.member-name{padding:4px 0}.avatar-picker{border:0;padding:0;margin:24px 0 0;min-width:0}.avatar-picker legend{font-size:14px;font-weight:700;margin-bottom:12px}.avatar-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.avatar-option{position:relative;display:grid!important;place-items:center;margin:0!important;padding:8px;border:1px solid transparent;border-radius:10px;background:var(--canvas);cursor:pointer;min-height:68px}.avatar-option input{position:absolute;opacity:0;width:1px!important;height:1px;margin:0!important;padding:0!important}.avatar-option:hover{background:var(--soft)}.avatar-option:has(input:checked){background:var(--soft);border-color:var(--accent)}.avatar-option:has(input:checked):after{content:'✓';position:absolute;right:5px;bottom:2px;font-size:12px;font-weight:700;color:var(--accent)}.avatar-option:has(input:focus-visible){outline:3px solid var(--accent);outline-offset:2px}.avatar-option img{transition:transform .16s ease-out}.avatar-option:hover img{transform:rotate(-8deg)}.race-ranking li{display:flex;align-items:center;gap:6px}.result-summary-row>strong{display:flex;align-items:center;gap:12px}.result-summary-row>strong>span{font-size:16px;color:var(--ink);overflow-wrap:anywhere}.finish-card strong{display:flex;align-items:center;gap:10px}.wheel-person{position:absolute;left:50%;top:calc(50% + 6px);transform:translate(-50%,-50%);display:grid;place-items:center;pointer-events:none}.wheel-person img{width:66px;height:66px}.wheel-target-label{display:block;font-size:14px;margin-bottom:8px}.wheel-side .game-controls{flex-wrap:wrap;gap:12px;margin-top:24px}.wheel-side .game-controls>.start-button{margin:0}.wheel-side #wheel-target{width:100%;max-width:240px}.result-dialog .result-summary-row>span{overflow-wrap:anywhere}@media(max-width:760px){.avatar-option{padding:6px;min-height:60px}.avatar-option img{width:44px;height:44px}.wheel-person img{width:48px;height:48px}.race-ranking li{font-size:14px}.result-summary-row{gap:10px}.result-summary-row>strong{gap:8px}}@media(prefers-reduced-motion:reduce){.avatar-option:hover img{transform:none}}
