/* 골라셈 golasem.co.kr */
:root{
  --paper:#F7F5FB;--surface:#FFFFFF;--ink:#1E1530;--slate:#675F7B;--line:#E4DEEF;--chip:#EFE9FC;
  --hand:#6D28D9;--on-hand:#FFFFFF;--hdr:#5B21B6;--rim:#3B1A86;--mark:#FFC53D;
  --dim:rgba(247,245,251,.62);--dim-ink:rgba(30,21,48,.5);
  --num:"Manrope","IBM Plex Sans KR","Apple SD Gothic Neo","Malgun Gothic",system-ui,sans-serif;
  --ui:"IBM Plex Sans KR","Apple SD Gothic Neo","Malgun Gothic","Noto Sans KR",system-ui,sans-serif;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){--paper:#13111A;--surface:#1D1928;--ink:#EEEAF6;--slate:#A69FBA;--line:#332D44;--chip:#2A2342;--hand:#B79CFF;--on-hand:#1E0F45;--hdr:#3E1A8C;--rim:#2A1366;--mark:#FFC53D;--dim:rgba(19,17,26,.66);--dim-ink:rgba(238,234,246,.55);color-scheme:dark}
}
:root[data-theme="dark"]{--paper:#13111A;--surface:#1D1928;--ink:#EEEAF6;--slate:#A69FBA;--line:#332D44;--chip:#2A2342;--hand:#B79CFF;--on-hand:#1E0F45;--hdr:#3E1A8C;--rim:#2A1366;--mark:#FFC53D;--dim:rgba(19,17,26,.66);--dim-ink:rgba(238,234,246,.55);color-scheme:dark}
html{-webkit-text-size-adjust:100%}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.65 var(--ui);-webkit-font-smoothing:antialiased;word-break:keep-all;overflow-wrap:break-word}
a{color:inherit}
:focus-visible{outline:2px solid var(--hand);outline-offset:3px;border-radius:6px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* 상단 */
.top{position:sticky;top:0;z-index:20;display:flex;align-items:center;flex-wrap:wrap;gap:4px 20px;padding:8px clamp(16px,4vw,40px);background:var(--hdr);color:#fff}
.brand{display:flex;align-items:center;gap:8px;text-decoration:none;font-weight:700;font-size:19px;letter-spacing:-.01em;padding:6px 0;color:#fff}
.brand svg{width:26px;height:26px;flex:none}
.brand .tag{margin-left:2px;font-size:12px;font-weight:500;color:rgba(255,255,255,.75)}
.tabs{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none;margin-right:auto}
.tabs::-webkit-scrollbar{display:none}
.tabs a{position:relative;display:flex;align-items:center;padding:10px 12px;text-decoration:none;color:rgba(255,255,255,.78);font-weight:500;white-space:nowrap;border-radius:8px}
.tabs a:hover,.tabs a[aria-current="page"]{color:#fff}
.tabs a[aria-current="page"]::after{content:"";position:absolute;left:12px;right:12px;bottom:1px;height:3px;border-radius:2px;background:var(--mark)}
.top :focus-visible{outline-color:#fff}
@media (max-width:640px){
  .brand{margin-right:auto}
  .tabs{order:3;flex-basis:100%;margin:0 -8px}
}

main{max-width:1080px;margin:0 auto;padding:0 clamp(16px,4vw,40px) 24px}
/* 돌아간 룰렛의 바깥 상자가 화면 폭을 넘어 옆으로 흔들리지 않게 */
main{overflow-x:clip}
@supports not (overflow-x:clip){@media (max-width:860px){main{overflow-x:hidden}}}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 18px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:500 15px/1 var(--ui);cursor:pointer;text-decoration:none;white-space:nowrap}
.btn:hover{border-color:var(--ink)}
.btn.primary{background:var(--hand);border-color:var(--hand);color:var(--on-hand);font-weight:600}
.btn.primary:hover{filter:brightness(1.08)}
.btn.quiet{background:transparent;border-color:transparent;color:var(--slate)}
.btn.quiet:hover{color:var(--ink);border-color:var(--line)}
.btn.sm{min-height:36px;padding:0 13px;font-size:14px}
.btn:disabled{opacity:.45;cursor:default}
button.link{border:0;background:none;padding:0;color:var(--hand);font:inherit;font-weight:600;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
input,select{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 12px;min-height:44px}
input:focus-visible{outline:2px solid var(--hand);outline-offset:1px}
.check{display:flex;align-items:center;gap:10px;margin:8px 0;font-size:15px;cursor:pointer}
.check input{width:20px;height:20px;min-height:0;margin:0;accent-color:var(--hand)}
.muted{color:var(--slate)}
.small{font-size:13px}

/* 첫 줄 */
.hero{padding:clamp(22px,4vw,40px) 0 6px;text-align:center}
.hero .kick{margin:0 0 4px;font-weight:600;color:var(--hand);font-size:15px}
.hero h1{margin:0;font-size:clamp(26px,4.4vw,38px);line-height:1.3;font-weight:800;letter-spacing:-.02em}
.hero .lead{margin:8px auto 0;max-width:36em;color:var(--slate);font-size:16px}

/* 룰렛 */
.gola{margin:18px 0 8px}
.gola-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(20px,4vw,48px);align-items:start}
@media (max-width:860px){.gola-grid{grid-template-columns:1fr}}
.wheel-col{position:sticky;top:76px}
@media (max-width:860px){.wheel-col{position:static}}
.wheel-box{position:relative;width:min(100%,500px);aspect-ratio:1/1;margin:0 auto}
.wheel-box canvas{display:block;width:100%;height:100%;border-radius:50%;cursor:pointer;will-change:transform;filter:drop-shadow(0 10px 22px rgba(46,16,101,.22))}
.spinning .wheel-box canvas{cursor:progress}
.pointer{position:absolute;top:50%;right:-14px;width:46px;height:40px;margin-top:-20px;transform-origin:85% 50%;pointer-events:none;filter:drop-shadow(0 2px 3px rgba(0,0,0,.3))}
.pointer svg{display:block;width:100%;height:100%}
@media (max-width:520px){.pointer{right:-8px;width:38px;height:34px;margin-top:-17px}}
.hub{position:absolute;top:50%;left:50%;width:25%;aspect-ratio:1/1;transform:translate(-50%,-50%);border-radius:50%;border:5px solid var(--rim);background:var(--surface);color:var(--hand);font:800 clamp(15px,3.4vw,21px)/1 var(--ui);letter-spacing:-.02em;cursor:pointer;box-shadow:0 4px 14px rgba(30,10,70,.28);transition:transform .15s}
.hub:hover:not(:disabled){transform:translate(-50%,-50%) scale(1.05)}
.hub:active:not(:disabled){transform:translate(-50%,-50%) scale(.97)}
.hub:disabled{cursor:default;color:var(--slate)}
.spinning .hub:disabled{color:var(--hand);opacity:1}
.result{min-height:128px;margin-top:18px;text-align:center}
.r-idle{margin:10px 0 0;color:var(--slate);font-size:15px}
.r-kick{margin:0;font-size:14px;font-weight:600;color:var(--slate)}
.r-name{display:inline-block;max-width:100%;margin:6px 0 4px;padding:6px 22px;border-radius:16px;font:800 clamp(30px,6.5vw,50px)/1.25 var(--ui);letter-spacing:-.02em;word-break:keep-all;overflow-wrap:anywhere;animation:pop .45s cubic-bezier(.2,1.4,.4,1)}
@keyframes pop{from{transform:scale(.6);opacity:0}to{transform:none;opacity:1}}
@media (prefers-reduced-motion:reduce){.r-name{animation:none}}
.r-act{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:10px}
.r-note{margin:10px 0 0;font-size:15px}
.r-note:empty{display:none}
.crowd-line{display:block;margin-top:6px;color:var(--slate);font-size:14px}
.crowd-line b{color:var(--hand)}

.edit-col{min-width:0}
.edit-col fieldset{border:0;margin:0;padding:0;min-width:0}
.edit-col fieldset:disabled{opacity:.6}
.title-field{display:grid;gap:6px;margin-bottom:16px;font-size:14px;font-weight:600;color:var(--slate)}
.title-field input{width:100%;font-size:16px}
.items-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.items-head h2{margin:0;font-size:17px;font-weight:700}
.items-head h2 span{color:var(--hand)}
.items-tools{display:flex;gap:2px;flex-wrap:wrap}
.items{list-style:none;margin:0;padding:0;max-height:min(52vh,460px);overflow:auto;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.items:empty{display:none}
.items li{display:grid;grid-template-columns:14px 1fr 40px;align-items:center;gap:10px;padding:2px 4px 2px 14px;border-bottom:1px solid var(--line)}
.items li:last-child{border-bottom:0}
.items .dot{width:14px;height:14px;border-radius:50%}
.items input{border:0;background:transparent;padding:8px 2px;min-height:42px;border-radius:6px;font-size:16px;width:100%}
.items .x{width:36px;height:36px;border:0;border-radius:50%;background:transparent;color:var(--slate);font-size:22px;line-height:1;cursor:pointer}
.items .x:hover{background:var(--chip);color:var(--ink)}
.add{display:flex;gap:8px;margin-top:10px}
.add input{flex:1;min-width:0;font-size:16px}
.fill{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:12px;font-size:15px}
.fill input{width:84px;text-align:center}
.opts{margin-top:14px}
.loaded{margin:0 0 12px;padding:10px 14px;border-radius:12px;background:var(--chip);font-size:14px}
.history{margin-top:16px;padding:14px 16px;border-radius:14px;background:var(--chip)}
.history h3{margin:0 0 6px;font-size:14px;font-weight:700}
.history ol{margin:0;padding-left:1.4em;columns:2;column-gap:24px;font-size:15px}
.fair{margin:16px 0 0;font-size:13px;color:var(--slate)}
.fair a{color:var(--hand)}

/* 사람들의 결과 */
.box{margin:28px 0 0;padding:22px;border:1px solid var(--line);border-top:3px solid var(--hand);border-radius:16px;background:var(--surface)}
.box h2{margin:0 0 4px;font-size:19px;font-weight:700}
.box .sub{margin:0 0 14px;font-size:14px;color:var(--slate)}
.crowd-nums,.totals{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0 0 14px}
.crowd-nums div,.totals div{padding:10px 12px;border-radius:12px;background:var(--chip)}
.crowd-nums span,.totals span{display:block;font-size:12px;color:var(--slate)}
.crowd-nums b,.totals b{font:800 22px/1.2 var(--num)}
.crowd-q{margin:0 0 6px;font-size:14px;font-weight:600}
.rank{list-style:none;margin:0;padding:0;counter-reset:r}
.rank li{display:grid;grid-template-columns:minmax(0,11em) 1fr auto;align-items:center;gap:10px;padding:7px 0;counter-increment:r}
.rank .nm{font-weight:500;line-height:1.35;word-break:keep-all;overflow-wrap:anywhere}
@media (max-width:520px){.rank li{grid-template-columns:minmax(0,8.5em) 1fr auto}}
.rank .nm::before{content:counter(r) ". ";color:var(--slate);font-weight:400}
.rank .nm a{text-decoration:none}
.rank .nm a:hover{color:var(--hand);text-decoration:underline}
.rank .bar{height:10px;border-radius:5px;background:var(--chip);overflow:hidden}
.rank .bar i{display:block;height:100%;border-radius:5px;background:var(--hand)}
.rank .v{font:700 14px/1 var(--num);color:var(--slate);min-width:3.2em;text-align:right}
.two{display:grid;grid-template-columns:1fr 1fr;gap:12px 32px}
@media (max-width:720px){.two{grid-template-columns:1fr}}
.two h3,.rival h3{margin:6px 0 6px;font-size:15px;font-weight:700}
.two h3 small,.rival h3 small{font-weight:400;color:var(--slate);font-size:13px;margin-left:4px}
.seg{display:inline-flex;gap:4px;padding:4px;border-radius:999px;background:var(--chip);margin:0 0 10px}
.seg button{border:0;background:transparent;color:var(--slate);font:500 14px/1 var(--ui);padding:9px 14px;border-radius:999px;cursor:pointer}
.seg button[aria-pressed="true"]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.08)}
.rivals{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:8px 32px}
.rival h3 a{text-decoration:none}
.rival h3 a:hover{color:var(--hand)}

/* 룰렛 모음 */
.presets{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;list-style:none;margin:0;padding:0}
.presets a{display:flex;flex-direction:column;gap:2px;height:100%;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--surface);text-decoration:none;transition:border-color .15s,transform .15s}
.presets a:hover{border-color:var(--hand);transform:translateY(-2px)}
.presets .em{font-size:24px;line-height:1.2}
.presets b{font-size:16px;font-weight:700}
.presets small{font-size:13px;color:var(--slate);line-height:1.45}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{display:inline-flex;align-items:center;min-height:38px;padding:0 14px;border-radius:999px;background:var(--chip);border:1px solid transparent;color:var(--ink);text-decoration:none;font:500 14px/1 var(--ui)}
.chip:hover{border-color:var(--hand)}

/* 글 */
.doc{max-width:760px;margin:0 auto;padding:clamp(28px,5vw,52px) 0 12px}
.doc h1{margin:0 0 12px;font-size:clamp(26px,4vw,34px);line-height:1.35;font-weight:800;letter-spacing:-.02em}
.doc .lead{margin:0 0 24px;font-size:17px;color:var(--slate)}
.doc h2{margin:40px 0 12px;font-size:21px;font-weight:700;letter-spacing:-.01em}
.doc h3{margin:26px 0 8px;font-size:17px;font-weight:700}
.doc p,.doc li{max-width:42em}
.doc ul,.doc ol{padding-left:1.3em}
.doc li{margin:6px 0}
.doc a{color:var(--hand);text-underline-offset:3px}
.doc .note{font-size:14px;color:var(--slate)}
.doc .meta{font-size:14px;color:var(--slate);margin:-4px 0 24px}
.doc .table-wrap{overflow-x:auto;margin:12px 0 8px}
.doc table{width:100%;border-collapse:collapse;font-size:15px}
.doc th,.doc td{padding:10px 8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.doc th{font-size:14px;font-weight:600;color:var(--slate)}
.doc blockquote{margin:16px 0;padding:12px 18px;border-left:4px solid var(--hand);background:var(--chip);border-radius:0 12px 12px 0}
.doc blockquote p{margin:0}
.doc .presets a,.doc .chip{color:var(--ink)}
.article{max-width:760px;margin:36px auto 0}
.article h2{margin:36px 0 10px;font-size:20px;font-weight:700}
.article h3{margin:22px 0 6px;font-size:17px;font-weight:700}
.article p,.article li{max-width:42em}
.article a{color:var(--hand);text-underline-offset:3px}
.article .chips a{color:var(--ink)}
.guide-list{list-style:none;padding:0;margin:0}
.guide-list li{max-width:none;margin:0;padding:16px 0;border-bottom:1px solid var(--line)}
.guide-list a{font-size:18px;font-weight:700;text-decoration:none;color:var(--ink)}
.guide-list a:hover{color:var(--hand)}
.guide-list p{margin:4px 0 0;color:var(--slate)}
.doc .guide-list{padding-left:0}
.section{margin:44px 0 0}
.section > h2{margin:0 0 4px;font-size:21px;font-weight:800;letter-spacing:-.01em}
.section > .sub{margin:0 0 14px;color:var(--slate);font-size:15px}
.cat-h{margin:18px 0 8px;font-size:15px;font-weight:700;color:var(--slate)}

/* 광고 자리 */
.ad{max-width:728px;margin:8px auto 40px;text-align:center}
.ad:empty{display:none}

.foot{max-width:1080px;margin:40px auto 0;padding:24px clamp(16px,4vw,40px) 40px;border-top:1px solid var(--line);color:var(--slate);font-size:14px}
.foot p{margin:0 0 6px}
.foot-links{display:flex;flex-wrap:wrap;gap:6px 18px;margin-bottom:12px}
.foot-links a{color:var(--slate);text-decoration:none}
.foot-links a:hover{color:var(--ink);text-decoration:underline}

.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:60;max-width:calc(100vw - 32px);padding:11px 20px;border-radius:999px;background:var(--ink);color:var(--paper);font-size:15px;text-align:center;opacity:0;transform:translate(-50%,10px);transition:opacity .2s,transform .2s;pointer-events:none}
.toast.on{opacity:1;transform:translate(-50%,0)}
.confetti{position:fixed;inset:0;width:100vw;height:100vh;z-index:55;pointer-events:none}
.notfound{text-align:center;padding:80px 0}

/* ===== 도구 공통 ===== */
.tool{margin:18px 0 8px;padding:clamp(16px,3vw,26px);border:1px solid var(--line);border-radius:20px;background:var(--surface)}
.tool h2{margin:0 0 10px;font-size:17px;font-weight:700}
.tool-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 18px;margin-bottom:14px}
.tool-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:18px}
.tool .hint{margin:10px 0 0;text-align:center;color:var(--slate);font-size:14px}
.stepper{display:inline-flex;align-items:center;gap:4px;padding:4px;border-radius:999px;background:var(--chip);font-size:15px}
.stepper button{width:38px;height:38px;border:0;border-radius:50%;background:var(--surface);color:var(--ink);font:600 20px/1 var(--ui);cursor:pointer;box-shadow:0 1px 2px rgba(0,0,0,.08)}
.stepper button:hover{color:var(--hand)}
.stepper span{min-width:4.2em;text-align:center}
.stepper b{font:800 18px/1 var(--num);color:var(--hand)}
.quick{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:14px;color:var(--slate)}
.quick input{width:64px;min-height:38px;padding:6px 8px;text-align:center}
.tool textarea{display:block;width:100%;min-height:120px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink);font:inherit;font-size:16px;resize:vertical}
.tool textarea:focus-visible{outline:2px solid var(--hand);outline-offset:1px}
.tool .sub-l{display:block;margin:0 0 6px;font-size:14px;font-weight:600;color:var(--slate)}
.tool .sub-l small{font-weight:400}

/* 사다리 */
.ladder{--n:4}
.lad-wrap{position:relative;max-width:820px;margin:0 auto}
.lad-row{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr))}
.lad-name,.lad-res{display:flex;align-items:center;justify-content:center;min-width:0;min-height:42px;margin:0 3px;padding:4px 4px;border-radius:10px;font:600 14px/1.2 var(--ui);text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lad-name{display:block;line-height:34px;border:2px solid var(--c);background:var(--surface);color:var(--ink);cursor:pointer}
.lad-name:disabled{cursor:default;opacity:1}
.playing .lad-name:not(.done):not(:disabled){animation:nudge 1.6s ease-in-out infinite}
.lad-name.done{background:var(--c);color:#fff}
.lad-name.busy{background:var(--c);color:#fff}
@keyframes nudge{0%,100%{transform:none}50%{transform:translateY(-3px)}}
@media (prefers-reduced-motion:reduce){.playing .lad-name:not(.done){animation:none}}
.lad-res{display:block;line-height:34px;border:2px dashed var(--line);background:var(--paper);color:var(--ink)}
.lad-res.hidden-res{color:var(--slate);font-size:18px}
.lad-res.on{border:2px solid var(--c);background:var(--c);color:#fff;animation:pop .4s cubic-bezier(.2,1.4,.4,1)}
.lad-svg{display:block;width:100%;height:clamp(280px,48vw,420px);margin:6px 0}
.ladder:not(.playing) .lad-svg{height:110px}
.playing .tool-bar{display:none}
.lad-v{stroke:var(--slate);stroke-width:3;opacity:.55}
.lad-h{stroke:var(--slate);stroke-width:3;opacity:.55}
.lad-trace{fill:none;stroke-width:6;stroke-linecap:round;stroke-linejoin:round}
@media (max-width:520px){.lad-name,.lad-res{font-size:12px;margin:0 1px;border-radius:7px}}
/* 칸이 좁으면 이름을 세로로 */
.narrow .lad-name,.narrow .lad-res{writing-mode:vertical-rl;text-orientation:upright;display:flex;align-items:center;justify-content:center;min-height:72px;max-height:96px;line-height:1.05;padding:6px 0;font-size:12px;letter-spacing:-1px;white-space:nowrap;overflow:hidden}
.narrow .lad-res.hidden-res{font-size:15px}
.lad-edit{max-width:520px;margin:18px auto 0}
.lad-edit-head{display:grid;grid-template-columns:14px 1fr 1fr;gap:10px;padding:0 14px 6px;font-size:13px;font-weight:600;color:var(--slate)}
.lad-edit ol{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.lad-edit li{display:grid;grid-template-columns:14px 1fr 1fr;align-items:center;gap:10px;padding:4px 10px 4px 14px;border-bottom:1px solid var(--line)}
.lad-edit li:last-child{border-bottom:0}
.lad-edit .dot{width:14px;height:14px;border-radius:50%}
.lad-edit input{min-height:40px;padding:6px 10px;font-size:16px;width:100%;background:var(--paper)}
.lad-sum{max-width:520px;margin:18px auto 0;padding:14px 18px;border-radius:14px;background:var(--chip)}
.lad-sum h3{margin:0 0 6px;font-size:15px}
.lad-sum ol{margin:0 0 10px;padding-left:1.4em;columns:2;column-gap:24px}

/* 제비뽑기 */
.lot-setup{display:grid;gap:12px;max-width:560px;margin:0 auto}
.lot-line{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:15px}
.lot-line input{width:76px;text-align:center}
.lot-line input.wide{width:110px}
.lot-status{margin:0 0 14px;text-align:center;font-size:16px}
.lot-status b{color:var(--hand);font:800 18px/1 var(--num)}
.lot-grid{--cols:4;display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));gap:10px;max-width:760px;margin:0 auto;perspective:900px}
@media (max-width:520px){.lot-grid{grid-template-columns:repeat(min(var(--cols),4),minmax(0,1fr))}}
.slip{position:relative;aspect-ratio:4/3;border:0;padding:0;background:transparent;cursor:pointer}
.slip-in{position:absolute;inset:0;transition:transform .55s cubic-bezier(.3,1.3,.5,1);transform-style:preserve-3d}
.slip.open .slip-in{transform:rotateY(180deg)}
.slip-f,.slip-b{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:12px;backface-visibility:hidden;-webkit-backface-visibility:hidden;font:700 16px/1.2 var(--ui);padding:6px;text-align:center;word-break:keep-all;overflow-wrap:anywhere}
.slip-f{background:repeating-linear-gradient(135deg,#FFF6D6 0 10px,#FFEFC2 10px 20px);color:#8A6A00;border:1px solid #F1DA92;box-shadow:0 2px 6px rgba(80,60,0,.15);font:800 20px/1 var(--num)}
.slip-f::after{content:"";position:absolute;left:12%;right:12%;top:50%;border-top:1px dashed rgba(138,106,0,.35)}
.slip:hover .slip-f{transform:translateY(-2px)}
.slip-b{transform:rotateY(180deg);background:var(--chip);color:var(--ink);border:1px solid var(--line)}
.slip.win .slip-b{background:var(--mark);color:#3B2600;border-color:#E0A800;font-weight:800}
.slip.lose .slip-b{background:var(--paper);color:var(--slate)}
.lot-log{max-width:560px;margin:18px auto 0;padding:14px 18px;border-radius:14px;background:var(--chip)}
.lot-log h3{margin:0 0 6px;font-size:15px}
.lot-log ol{margin:0;padding-left:1.4em;columns:2;column-gap:24px;font-size:14px}

/* 팀 나누기 */
.team-ctrl{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px 16px;margin:14px 0 4px}
.team-ctrl .seg{margin:0}
.teams{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,230px));justify-content:center;gap:12px;margin-top:18px}
.team-card{padding:14px 16px;border-radius:14px;border:1px solid var(--line);border-top:5px solid var(--c);background:var(--paper)}
.team-card h3{margin:0 0 8px;font-size:17px;color:var(--ink)}
.team-card h3 small{font-weight:400;font-size:13px;color:var(--slate);margin-left:4px}
.team-card ol{margin:0;padding-left:1.3em}
.team-card li{margin:3px 0;transition:opacity .25s,transform .25s}
.team-card li.pending{opacity:0;transform:translateY(6px)}
.team-card .lead{color:#E0A800;margin-right:4px}

/* 동전 */
.coin-stage{display:grid;place-items:center;height:260px;perspective:800px}
.coin{position:relative;width:170px;height:170px;transform-style:preserve-3d;cursor:pointer}
.coin .face{position:absolute;inset:0;display:grid;place-items:center;border-radius:50%;backface-visibility:hidden;-webkit-backface-visibility:hidden;font:800 54px/1 var(--ui);color:#6B4A00;
  background:radial-gradient(circle at 35% 30%,#FFF2B8 0,#FFD45C 38%,#E9A916 72%,#C98B05 100%);box-shadow:inset 0 0 0 8px rgba(255,255,255,.35),inset 0 0 0 11px rgba(150,100,0,.35),0 10px 24px rgba(0,0,0,.18)}
.coin .face.tails{transform:rotateX(180deg);background:radial-gradient(circle at 35% 30%,#F4F1FF 0,#CFC3F7 40%,#9F8BE6 74%,#7C66D1 100%);color:#3B1A86}
.coin .face small{display:block;margin-top:6px;font-size:14px;font-weight:600;letter-spacing:.08em;opacity:.75}
.coin-res{min-height:1.6em;margin:6px 0 0;text-align:center;font-size:clamp(24px,5vw,34px);font-weight:600}
.coin-res b{font-weight:800;color:var(--hand)}
.coin-res.pop{animation:pop .45s cubic-bezier(.2,1.4,.4,1)}
.coin-labels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:520px;margin:18px auto 0}
.coin-labels input{width:100%;min-width:0}
.coin-labels label{display:grid;gap:4px;font-size:13px;color:var(--slate)}
.coin-hist{margin:16px 0 0;text-align:center;font-size:14px;color:var(--slate);min-height:1.4em}
.coin-hist b{color:var(--ink)}
.coin-hist .dots{display:flex;flex-wrap:wrap;justify-content:center;gap:4px;margin-top:6px}
.coin-hist .dots i{width:12px;height:12px;border-radius:50%}
.coin-hist .dots i.h{background:#F2B33D}
.coin-hist .dots i.t{background:#9F8BE6}

/* 주사위 */
.dice-row{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;min-height:110px;margin:12px 0 6px;cursor:pointer}
.die{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:4px;width:clamp(64px,16vw,96px);height:clamp(64px,16vw,96px);padding:clamp(9px,2.4vw,14px);border-radius:20%;background:#fff;border:2px solid #E4DEEF;box-shadow:0 6px 0 #D9D1EA,0 10px 18px rgba(30,10,70,.18);transition:transform .08s}
.die i{border-radius:50%;min-width:0;min-height:0}
.die i.on{background:#1E1530}
.dice-row:not(.rolling) .die{animation:pop .35s cubic-bezier(.2,1.4,.4,1)}
.dice-sum{min-height:1.5em;margin:10px 0 0;text-align:center;font-size:clamp(20px,4vw,28px);font-weight:600}
.dice-sum b{font:800 1.3em/1 var(--num);color:var(--hand)}
.dice-hist{max-width:420px;margin:16px auto 0}
.dice-hist h3{margin:0 0 4px;font-size:14px;color:var(--slate)}
.dice-hist ol{margin:0;padding-left:1.4em;font-size:15px}
.dice-rank li{grid-template-columns:2.4em 1fr auto}
.dice-rank .nm::before{content:""}

/* 첫 화면 도구 카드 */
.tools-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;list-style:none;margin:0;padding:0}
.tools-grid a{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--surface);text-decoration:none;transition:border-color .15s,transform .15s}
.tools-grid a:hover{border-color:var(--hand);transform:translateY(-2px)}
.tools-grid .em{font-size:28px;line-height:1}
.tools-grid b{display:block;font-size:16px}
.tools-grid small{display:block;font-size:13px;color:var(--slate);line-height:1.4}
/* 마니또 뽑기 */
.manito textarea.short{min-height:64px}
.m-more{margin:12px 0 0;border:1px solid var(--line);border-radius:14px;background:var(--paper)}
.m-more summary{cursor:pointer;padding:12px 14px;font-weight:600;font-size:15px}
.m-more summary small{font-weight:400;color:var(--slate)}
.m-more-in{padding:0 14px 14px}
.m-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin-top:10px}
.m-grid label{display:grid;gap:4px;font-size:14px;font-weight:600;color:var(--slate)}
.m-grid input{width:100%;min-width:0}
.m-status{margin:0 0 12px;text-align:center;font-size:16px}
.m-status b{color:var(--hand)}
.m-status .nw{white-space:nowrap}
.m-t{display:block;margin-bottom:2px;font-size:18px;font-weight:800;color:var(--ink)}
.m-how{text-align:center}
.m-names{list-style:none;margin:14px auto 0;padding:0;max-width:760px;display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}
.m-name{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:100%;min-height:64px;padding:10px;border:1px solid var(--line);border-radius:14px;background:var(--paper);color:var(--ink);font:700 17px/1.3 var(--ui);cursor:pointer;word-break:keep-all;overflow-wrap:anywhere}
.m-name small{font-weight:400;font-size:12px;color:var(--slate)}
.m-name:hover{border-color:var(--hand)}
.m-name.done{background:var(--chip);color:var(--slate)}
.m-name.done small{color:var(--hand);font-weight:600}
.m-links{list-style:none;margin:14px auto 0;padding:0;max-width:560px}
.m-links li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}
.m-links .nm{font-weight:700;min-width:0;overflow-wrap:anywhere}
.m-links .nm small{font-weight:600;color:var(--hand);font-size:13px}
.m-links .acts{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px;flex:none}
.m-all{max-width:560px;margin:16px auto 0;padding:14px 18px;border-radius:14px;background:var(--chip)}
.m-all h3{margin:0 0 6px;font-size:15px}
.m-all ol{margin:0 0 10px;padding-left:1.4em}
.m-layer{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(20,10,40,.6)}
.m-layer[hidden]{display:none}
.m-sheet{width:100%;max-width:420px;max-height:calc(100vh - 32px);overflow:auto;padding:26px 22px 22px;border-radius:22px;background:var(--surface);color:var(--ink);text-align:center;box-shadow:0 20px 50px rgba(0,0,0,.35);animation:pop .3s cubic-bezier(.2,1.4,.4,1)}
.m-lock{overflow:hidden}
.m-kick{margin:0 0 6px;font-size:13px;font-weight:600;color:var(--hand)}
.m-q{margin:0;font-size:17px}
.m-target{margin:6px 0 4px;font:800 clamp(34px,8vw,48px)/1.2 var(--ui);letter-spacing:-.02em;color:var(--hand);word-break:keep-all;overflow-wrap:anywhere}
.m-sub{margin:6px 0 0;color:var(--slate);font-size:14px}
.m-info{margin:16px 0 0;padding:12px 14px;border-radius:14px;background:var(--chip);text-align:left;font-size:14px}
.m-info div{display:grid;grid-template-columns:5.5em minmax(0,1fr);gap:8px;padding:3px 0}
.m-info dt{color:var(--slate)}
.m-info dd{margin:0;font-weight:600}
.m-for{margin:4px 0 0;text-align:center;font-size:17px;line-height:1.6}
.m-card{max-width:420px;margin:18px auto 0;padding:24px 22px;border-radius:22px;border:2px solid var(--hand);background:var(--surface);text-align:center}
.m-ideas{columns:2;column-gap:28px}
@media (max-width:560px){.m-ideas{columns:1}.m-links li{flex-wrap:wrap}}
