.avatar{border-radius:var(--r-full);border:2px solid;flex:none;justify-content:center;align-items:center;display:inline-flex;position:relative;overflow:visible}.avatar img{border-radius:var(--r-full);object-fit:cover;width:100%;height:100%}.avatar-initial{font-weight:600}.avatar-dot{border-radius:var(--r-full);border:2px solid var(--canvas);width:10px;height:10px;position:absolute;bottom:-2px;right:-2px}.avatar-dot-online{background:var(--success)}.avatar-dot-away{background:var(--away)}.avatar-stack{display:inline-flex}.avatar-stack>.avatar{transition:transform .4s var(--spring);box-shadow:0 0 0 2px var(--canvas);margin-left:-8px}.avatar-stack>.avatar:first-child{margin-left:0}.avatar-ping:after{content:"";border-radius:var(--r-full);border:2px solid var(--success);animation:1.8s ease-out forwards presence-ping;position:absolute;inset:-2px}@keyframes presence-ping{0%{opacity:.8;transform:scale(1)}to{opacity:0;transform:scale(1.8)}}.avatar-more{background:var(--surface);border-color:var(--hairline);color:var(--slate);font-size:12px;font-weight:600}.confetti{pointer-events:none;position:absolute;top:40%;left:50%}.confetti span{width:8px;height:8px;animation:confetti-fly .9s var(--glide) forwards;border-radius:2px;position:absolute}@keyframes confetti-fly{to{transform:translate(var(--dx), var(--dy)) rotate(240deg);opacity:0}}@media (prefers-reduced-motion:reduce){.confetti{display:none}}.draw-split{grid-template-columns:minmax(300px,380px) 1fr;align-items:start;gap:20px;display:grid}.entrant-chips,.prize-list,.pick-grid,.order-list,.draw-history{margin:0;padding:0;list-style:none}.draw-label{font-size:14px;font-weight:500}.draw-go{width:100%}.entrant-chips{flex-wrap:wrap;gap:6px;display:flex}.entrant-chip{border-radius:var(--r-full);background:var(--surface);border:1px solid var(--hairline-soft);align-items:center;gap:2px;max-width:160px;height:32px;padding:0 4px 0 12px;font-size:13px;display:inline-flex}.entrant-chip button{border-radius:var(--r-full);width:24px;height:24px;color:var(--stone);cursor:pointer;background:0 0;border:0;flex:none}.entrant-chip button:hover{background:var(--hairline-soft);color:var(--ink)}.stepper{align-items:center;gap:8px;display:inline-flex}.stepper-value{text-align:center;min-width:40px;font-weight:600}.prize-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 12px;display:grid}.prize-list li{align-items:center;gap:6px;display:flex}.prize-list .caption{text-align:right;width:18px}.input.input-sm{height:36px;padding:0 10px}.draw-stage{min-width:0;position:relative}.draw-result{gap:16px}.pick-stage{position:relative}.pick-stage .confetti{top:50%}.pick-grid{perspective:800px;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:10px;display:grid}.pick-card{height:76px;transform-style:preserve-3d;transition:transform .6s var(--spring);position:relative}.pick-card.flipped{transform:rotateY(180deg)}.pick-face{border-radius:var(--r-lg);border:1px solid var(--hairline-soft);backface-visibility:hidden;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:8px;display:flex;position:absolute;inset:0}.pick-front{background:var(--surface);font-weight:500}.pick-back{background:var(--canvas);color:var(--stone);font-size:13px;transform:rotateY(180deg)}.pick-back .ellipsis{max-width:100%}.pick-card.win .pick-back{background:var(--amber-light);border-color:var(--amber);color:var(--amber-dark)}.pick-card.win .pick-back b{font-size:15px}.order-list{flex-direction:column;gap:6px;display:flex}.order-item{border-radius:var(--r-md);background:var(--surface);align-items:center;gap:12px;min-height:44px;padding:0 14px;display:flex}.order-no{width:24px;color:var(--slate);font-weight:600}.order-first{background:var(--amber-light);color:var(--amber-dark)}.order-first .order-no{color:var(--amber-dark)}.ladder-scroll{padding-bottom:4px;overflow-x:auto}.ladder{margin:0 auto}.ladder svg{display:block}.ladder-labels{display:flex}.ladder-labels>*{text-align:center;flex:1 1 0;min-width:0;padding:4px}.ladder-name{font-size:13px;font-weight:500}.ladder-rail{stroke:var(--hairline-strong);stroke-width:2px}.ladder-path{fill:none;stroke:var(--action);stroke-width:3px;stroke-linejoin:round;stroke-linecap:round;opacity:.16;transition:opacity .3s}.ladder-path.drawing{stroke-dasharray:1;stroke-dashoffset:1px;animation:ladder-draw .9s var(--glide) forwards, ladder-hold 1.2s linear;animation-fill-mode:forwards,both}@keyframes ladder-draw{to{stroke-dashoffset:0}}@keyframes ladder-hold{0%,75%{opacity:1}}.ladder-path.focused,.ladder-path.drawing.focused{stroke-dashoffset:0;opacity:1;animation:none}.ladder-name,.ladder-prize{font:inherit;color:inherit;cursor:pointer;border-radius:var(--r-sm);background:0 0;border:0}.ladder-name:hover,.ladder-prize:hover,.ladder-name.focused,.ladder-prize.focused{background:var(--surface)}.ladder-hint{text-align:center}.ladder-prize{flex-direction:column;gap:0;font-size:13px;display:flex}.ladder-prize.arriving{animation:.3s both fade-in}.draw-history{border:1px solid var(--hairline-soft);border-radius:var(--r-lg);flex-direction:column;display:flex}.draw-history-row{align-items:center;gap:10px;min-height:52px;padding:8px 16px;display:flex}.draw-history-row+.draw-history-row{border-top:1px solid var(--hairline-soft)}@media (width<=1023px){.draw-split{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.pick-card,.pick-card.flipped{transform:none}.pick-card .pick-front{display:none}.pick-card .pick-back{transform:none}.ladder-path.drawing{stroke-dashoffset:0;animation:none}}.stars{gap:2px;line-height:1;display:inline-flex}.star{color:var(--hairline-strong)}.star.on{color:var(--amber)}.star-btn{font-size:inherit;cursor:pointer;transition:transform .25s var(--spring);background:0 0;border:0;padding:4px}.star-btn:hover,.star-btn:focus-visible{outline:none;transform:scale(1.2)}.lunch-head{align-items:flex-start}.group-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.group-card{border:1px solid var(--hairline-soft);border-radius:var(--r-lg);background:var(--canvas);flex-direction:column;justify-content:space-between;gap:12px;padding:16px;transition:background-color .2s,border-color .2s;display:flex}.place-links{gap:10px;display:inline-flex}.place-links a{color:var(--slate);text-underline-offset:2px;text-decoration:underline}.people-row{flex-wrap:wrap;gap:20px}.lunch-split{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:20px;display:grid}.picker-head{flex-wrap:wrap}.picker-body{gap:12px;display:grid}.place-list{border:1px solid var(--hairline-soft);border-radius:var(--r-lg);flex-direction:column;max-height:420px;margin:0;padding:0;list-style:none;display:flex;overflow:auto}.place-row{border-bottom:1px solid var(--hairline-soft);align-items:center;gap:12px;min-height:56px;padding:10px 16px;display:flex}.place-row:last-child{border-bottom:0}.place-row.focused{background:var(--surface)}.place-meta{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.place-name{font-weight:600}.place-loading,.place-list>.empty,.place-list>.error-text{border:0;padding:16px}.picker-search .input{flex:1}.tab-count{opacity:.7;margin-left:6px;font-size:12px}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border-radius:var(--r-full);border:1px solid var(--hairline);background:var(--canvas);height:30px;color:var(--ink);cursor:pointer;transition:transform .5s var(--spring), background-color .15s ease;align-items:center;gap:4px;padding:0 12px;font-size:13px;font-weight:500;display:inline-flex}.chip .num{color:var(--stone);font-size:12px}.chip:hover{background:var(--surface)}.chip:active{transition:transform 80ms ease-out;transform:scale(.88)}.chip[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff}.chip[aria-pressed=true] .num{color:#ffffffb3}.chip:focus-visible{outline:2px solid var(--action);outline-offset:2px}.chips-sub .chip{background:var(--surface);height:26px;color:var(--slate);border-color:#0000;padding:0 10px}.chips-sub .chip[aria-pressed=true]{background:var(--amber-light);color:var(--amber-dark);border-color:var(--amber)}.chips-sub .chip[aria-pressed=true] .num{color:var(--amber-dark)}.place-grid{border:1px solid var(--hairline-soft);border-radius:var(--r-lg);grid-template-columns:repeat(auto-fill,minmax(240px,1fr));align-content:start;gap:4px;max-height:600px;margin:0;padding:8px;list-style:none;display:grid;overflow:auto}.place-grid.stagger>:nth-child(n+13){animation:none}.place-grid>.empty,.place-grid>.place-loading{grid-column:1/-1;padding:16px}.place-cell{border-radius:var(--r-md);align-items:center;gap:8px;min-height:68px;padding:8px 10px 8px 12px;display:flex}.place-cell .place-meta{gap:1px}.place-cell.focused{background:var(--surface)}.place-cell .place-name,.place-cell .place-sub{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.roulette{position:sticky;top:16px}.roulette-filters{flex-wrap:wrap;gap:12px}.roulette-filters label{white-space:nowrap;gap:6px}.input.input-xs{flex:none;width:56px;min-width:56px;height:32px;padding:0 8px}select.input.input-xs{width:auto;padding-right:4px}.input.input-xs:focus{padding:0 7px}.roulette-result{border-radius:var(--r-lg);background:var(--surface);text-align:center;padding:16px;position:relative}.reel-window{overflow:hidden;-webkit-mask-image:linear-gradient(#0000,#000 30% 70%,#0000);mask-image:linear-gradient(#0000,#000 30% 70%,#0000)}.reel-item{place-items:center;font-size:18px;font-weight:600;display:grid}.roulette-winner{animation:winner-in .58s var(--spring) both;flex-direction:column;align-items:center;gap:8px;display:flex;position:relative}@keyframes winner-in{0%{opacity:0;transform:scale(.9)}}@media (width<=1023px){.lunch-split{grid-template-columns:1fr}.place-grid{max-height:70vh}.roulette{position:static}}@media (width<=767px){.chips{scrollbar-width:none;flex-wrap:nowrap;margin:0 -16px;padding:0 16px 2px;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.chip{flex:none}}.decision{border:1px solid var(--amber);border-radius:var(--r-lg);background:var(--amber-light);animation:winner-in .58s var(--spring) both;flex-direction:column;gap:4px;padding:20px 24px;display:flex}.decision-kicker{color:var(--amber-dark);font-weight:600}.decision-name{letter-spacing:-.4px;margin:0;font-size:24px;font-weight:600;line-height:1.3}.decision-foot{margin-top:12px}.decision-note{border:1px dashed var(--hairline);border-radius:var(--r-lg);text-align:center;padding:12px 16px}.group-card-decided{border-color:var(--amber);background:var(--amber-light)}.group-card-muted{opacity:.55}@media (prefers-reduced-motion:reduce){.decision{animation:.2s both fade-in}}.lunch-side{gap:16px}.lunch-side .roulette{position:static}.wins-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.wins-row{border-bottom:1px solid var(--hairline-soft);align-items:center;gap:10px;min-height:44px;display:flex}.wins-row:last-child{border-bottom:0}.wins-rank{width:16px;color:var(--stone);text-align:center;font-weight:600}.wins-row:first-child .wins-rank{color:var(--amber-deep)}.wins-who{flex:1;gap:0;min-width:0}.wins-name{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.wins-count{font-weight:600}.speaker-status{border-radius:var(--r-lg);background:var(--surface);padding:10px 14px}.add-form .input{flex:1}.now-playing{border:1px solid var(--hairline-soft);border-radius:var(--r-lg);background:var(--canvas);align-items:center;gap:16px;padding:16px;display:flex}.now-playing.empty{color:var(--stone);border-style:dashed;justify-content:center;padding:24px}.now-playing.mini{box-shadow:var(--shadow-2);flex-wrap:wrap;gap:10px;padding:12px}.now-playing.mini.empty{box-shadow:none;padding:16px;font-size:13px}.np-thumb{aspect-ratio:16/9;object-fit:cover;border-radius:var(--r-md);flex:none;width:160px}.now-playing.mini .np-thumb{width:64px}.np-body{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.np-title{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.np-bar{border-radius:var(--r-full);background:var(--hairline-soft);cursor:pointer;height:6px;margin-top:6px;position:relative;overflow:hidden}.np-bar:focus-visible{outline:2px solid var(--action);outline-offset:3px}.np-fill{border-radius:var(--r-full);background:var(--ink);transition:transform .5s linear;position:absolute;inset:0}.icon-btn.np-toggle{background:var(--ink);color:#fff;border-color:var(--ink);width:44px;height:44px}.now-playing.mini .icon-btn.np-toggle{width:36px;height:36px}.eq{align-items:flex-end;gap:2px;height:12px;display:inline-flex}.eq span{background:var(--amber);transform-origin:bottom;border-radius:1px;width:3px;height:100%;animation:1s ease-in-out infinite eq-pump}.eq span:nth-child(2){animation-delay:-.3s}.eq span:nth-child(3){animation-delay:-.6s}@keyframes eq-pump{0%,to{transform:scaleY(.3)}50%{transform:scaleY(1)}}.skip-row{flex-wrap:wrap}.queue{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.queue-item{border:1px solid var(--hairline-soft);border-radius:var(--r-lg);background:var(--canvas);min-height:56px;transition:transform .3s var(--glide), opacity .2s ease;align-items:center;gap:12px;padding:8px 12px;display:flex}.queue-item[draggable=true]{cursor:grab}.queue-item.dragging{opacity:.5;transform:scale(.98)}.queue-item.history{background:var(--surface-soft)}.drag-handle{color:var(--muted);letter-spacing:-2px}.queue-thumb{aspect-ratio:16/9;object-fit:cover;border-radius:var(--r-sm);flex:none;width:64px}.queue-meta{flex-direction:column;flex:1;min-width:0;display:flex}.queue-title{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.player-dock{z-index:40;border-radius:var(--r-xl);width:280px;box-shadow:var(--shadow-3);background:#000;position:fixed;bottom:16px;right:16px;overflow:hidden}.player-dock.hidden{opacity:0;pointer-events:none;width:1px;height:1px}.player-dock-frame{aspect-ratio:16/9}.player-dock-frame iframe{width:100%;height:100%;display:block}.player-dock-label{border-radius:var(--r-full);color:#fff;background:#0009;padding:2px 8px;position:absolute;top:8px;left:8px}@media (width<=767px){.np-thumb{width:96px}.player-dock{bottom:calc(72px + env(safe-area-inset-bottom));width:200px}}.reviews-toolbar{flex-wrap:wrap}.reviews-toolbar .input{flex:1;min-width:200px}.reviews-split{grid-template-columns:minmax(260px,360px) minmax(0,1fr);align-items:start;gap:20px;display:grid}.restaurant-list{border:1px solid var(--hairline-soft);border-radius:var(--r-lg);margin:0;padding:0;list-style:none;overflow:hidden}.restaurant-row{border:0;border-bottom:1px solid var(--hairline-soft);background:var(--canvas);text-align:left;cursor:pointer;align-items:center;gap:12px;width:100%;min-height:56px;padding:10px 16px;display:flex}.restaurant-list li:last-child .restaurant-row{border-bottom:0}.restaurant-row:hover{background:var(--surface-soft)}.restaurant-row.selected{background:var(--surface);box-shadow:inset 3px 0 0 var(--ink)}.restaurant-row:focus-visible{outline:2px solid var(--action);outline-offset:-2px}.rating-chip{gap:4px;font-weight:600}.restaurant-detail{position:sticky;top:16px}.detail-empty{align-self:stretch}.visit-chips{flex-wrap:wrap}.visit-chips .badge{cursor:pointer;border:0}.review-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.review-item{border-top:1px solid var(--hairline-soft);gap:12px;padding:14px 0;display:flex}@media (width<=1023px){.reviews-split{grid-template-columns:1fr}.restaurant-detail{position:static}}.hide-btn{color:var(--slate);align-self:flex-start}.banner.hide-confirm{background:var(--danger-light);color:var(--danger);flex-wrap:wrap}.login{background:radial-gradient(circle at 20% 20%, #fff1b8 0, transparent 30%), radial-gradient(circle at 80% 30%, #d6ecff 0, transparent 30%), radial-gradient(circle at 50% 85%, #ffd0cc 0, transparent 30%), var(--surface-soft);place-items:center;min-height:100%;padding:16px;display:grid}.login-card{text-align:center;border-radius:var(--r-xl);background:var(--canvas);border:1px solid var(--hairline-soft);width:min(400px,100%);box-shadow:var(--shadow-3);align-items:center;gap:16px;padding:40px 32px}.login-card .btn{width:100%}.login-mark{border-radius:var(--r-lg);width:56px;height:56px;font-size:28px}.toasts{z-index:50;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast{pointer-events:auto;background:var(--canvas);border:1px solid var(--hairline-soft);border-radius:var(--r-full);box-shadow:var(--shadow-3);cursor:pointer;animation:toast-in .55s var(--toast-overshoot) both;text-align:left;align-items:center;gap:10px;padding:10px 16px 10px 10px;display:flex}@keyframes toast-in{0%{opacity:0;transform:translateY(140%)scale(.9)}}@media (width<=767px){.toasts{bottom:calc(72px + env(safe-area-inset-bottom));width:calc(100% - 32px)}}.birthday-banner{border-radius:var(--r-lg);align-items:center;gap:12px;padding:12px 16px;animation:.55s cubic-bezier(.18,1.25,.4,1) both bday-slide,.3s both fade-in;display:flex}@keyframes bday-slide{0%{transform:translateY(-160%)}}.birthday-text{font-size:15px}.birthday-banner .btn{flex:none}.birthday-tomorrow{padding:0 4px}.bday-messages{gap:8px;max-height:50vh;margin:0;padding:0;list-style:none;overflow-y:auto}.bday-message{border-radius:var(--r-md);background:var(--surface);align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.bday-message .btn{flex:none;margin-left:auto}.bday-author{font-size:13px;font-weight:600}.bday-body{white-space:pre-wrap;overflow-wrap:anywhere}.input.bday-input{resize:vertical;height:auto;padding-top:10px;padding-bottom:10px}.presence-badges{color:var(--slate)}@media (width<=767px){.birthday-banner{flex-wrap:wrap}}@media (prefers-reduced-motion:reduce){.birthday-banner{animation:.2s both fade-in}}.birthday-banners{gap:8px;max-width:960px;margin:0 auto 20px}.shell{grid-template-columns:220px minmax(0,1fr) 280px;grid-template-areas:"nav main panel";min-height:100%;display:grid}.side-nav{border-right:1px solid var(--hairline-soft);background:var(--surface-soft);flex-direction:column;grid-area:nav;gap:16px;height:100vh;padding:20px 12px;display:flex;position:sticky;top:0}.side-nav ul{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.brand{align-items:center;gap:10px;padding:0 8px 8px;display:flex}.brand-mark{border-radius:var(--r-md);background:var(--ink);place-items:center;width:32px;height:32px;font-size:16px;display:grid}.brand-mark.small{width:28px;height:28px;font-size:14px}.nav-link{border-radius:var(--r-md);height:40px;color:var(--slate);align-items:center;gap:10px;padding:0 12px;font-weight:500;display:flex}.nav-link:hover{background:var(--canvas)}.nav-link.active{background:var(--canvas);color:var(--ink);box-shadow:var(--shadow-1);border:1px solid var(--hairline-soft)}.nav-me{padding:8px}.link-btn{text-align:left;cursor:pointer;background:0 0;border:0;padding:0}.link-btn:hover{color:var(--ink)}.ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.main{grid-area:main;min-width:0;padding:32px}.page{max-width:960px;margin:0 auto}.offline-banner{border-radius:var(--r-md);background:var(--danger-light);max-width:960px;color:var(--danger);margin:0 auto 16px;padding:8px 12px}.side-panel{border-left:1px solid var(--hairline-soft);flex-direction:column;grid-area:panel;gap:24px;height:100vh;padding:24px 16px 200px;display:flex;position:sticky;top:0;overflow:auto}.presence-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.presence-row{animation:stagger-in .4s var(--spring) both;align-items:center;gap:10px;display:flex}.top-bar,.tab-bar{display:none}@media (width<=1279px){.shell{grid-template-columns:200px minmax(0,1fr);grid-template-areas:"nav main"}.side-panel{display:none}.top-bar{display:flex}.main{padding-top:0}}@media (width>=768px) and (width<=1279px){.top-bar{grid-column:2;align-items:center;gap:10px;padding:12px 32px}.top-bar .brand-mark,.top-bar .title{display:none}.main{grid-row:2}.side-nav{grid-row:1/span 2}}@media (width<=767px){.shell{padding-bottom:calc(64px + env(safe-area-inset-bottom));display:block}.side-nav{display:none}.top-bar{z-index:20;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--hairline-soft);background:#ffffffeb;align-items:center;gap:8px;padding:10px 16px;position:sticky;top:0}.main{padding:16px}.tab-bar{z-index:30;padding-bottom:env(safe-area-inset-bottom);background:var(--canvas);border-top:1px solid var(--hairline-soft);grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tab-bar-link{height:64px;color:var(--stone);flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:12px;font-weight:500;display:flex}.tab-bar-link.active{color:var(--ink)}}:root{--ink:#1c1c1e;--ink-soft:#2c2c34;--slate:#555a6a;--stone:#8e91a0;--muted:#a5a8b5;--canvas:#fff;--surface:#f7f8fa;--surface-soft:#fafbfc;--hairline:#e0e2e8;--hairline-soft:#eef0f3;--hairline-strong:#c7cad5;--amber:#f2a33a;--amber-deep:#d9861a;--amber-light:#fdf0dc;--amber-dark:#6b4310;--action:#2f6fed;--action-pressed:#2152b8;--success:#12a46b;--away:#f2a33a;--danger:#d84a4a;--danger-light:#fbe4e4;--r-sm:6px;--r-md:8px;--r-lg:12px;--r-xl:16px;--r-full:9999px;--shadow-1:0 1px 2px #1410380a;--shadow-2:0 4px 12px #1410380f;--shadow-3:0 16px 48px -8px #14103824;--spring:cubic-bezier(.34, 1.56, .64, 1);--glide:cubic-bezier(.16, 1, .3, 1);--toast-overshoot:cubic-bezier(.18, 1.25, .4, 1);--font:"Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, system-ui, sans-serif}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--canvas);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.5}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--action);text-decoration:none}h1,h2,h3,p{margin:0}.num{font-variant-numeric:tabular-nums}.title-lg{letter-spacing:-.4px;font-size:24px;font-weight:600;line-height:1.3}.title{letter-spacing:-.2px;font-size:18px;font-weight:600;line-height:1.4}.caption{color:var(--slate);font-size:13px;line-height:1.4}.micro{color:var(--stone);font-size:12px;font-weight:500}.card{background:var(--canvas);border:1px solid var(--hairline-soft);border-radius:var(--r-lg);padding:20px}.stack{flex-direction:column;gap:12px;display:flex}.row{align-items:center;gap:8px;display:flex}.plain-list{margin:0;padding:0;list-style:none}.spacer{flex:1}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.btn{border-radius:var(--r-full);cursor:pointer;white-space:nowrap;height:40px;transition:transform .5s var(--spring), background-color .15s ease;background:var(--ink);color:#fff;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:0 20px;font-size:14px;font-weight:500;line-height:1.3;display:inline-flex}.btn:active:not(:disabled){transition:transform 80ms ease-out;transform:scale(.88)}.btn:disabled{background:var(--hairline);color:var(--muted);cursor:default}.btn:focus-visible,.icon-btn:focus-visible,.tab:focus-visible{outline:2px solid var(--action);outline-offset:2px}.btn-secondary{color:var(--ink);border-color:var(--hairline-strong);background:0 0}.btn-secondary:hover:not(:disabled){background:var(--surface)}.btn-accent{background:var(--amber);color:var(--ink)}.btn-accent:hover:not(:disabled){background:var(--amber-deep)}.btn-ghost{color:var(--ink);border-radius:var(--r-md);background:0 0;height:32px;padding:0 12px}.btn-ghost:hover:not(:disabled){background:var(--surface)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:#c03d3d}.btn-sm{height:32px;padding:0 14px;font-size:13px}.icon-btn{border-radius:var(--r-full);border:1px solid var(--hairline);background:var(--canvas);cursor:pointer;width:36px;height:36px;transition:transform .5s var(--spring);justify-content:center;align-items:center;font-size:16px;display:inline-flex}.icon-btn:active{transition:transform 80ms ease-out;transform:scale(.88)}.input{border:1px solid var(--hairline-strong);border-radius:var(--r-md);background:var(--canvas);width:100%;height:44px;padding:0 16px}.input:focus{border:2px solid var(--action);outline:none;padding:0 15px}.input::placeholder{color:var(--muted)}.tabs{flex-wrap:wrap;gap:6px;display:inline-flex}.tab{border-radius:var(--r-full);border:1px solid var(--hairline);background:var(--canvas);height:32px;color:var(--slate);cursor:pointer;padding:0 14px;font-weight:500}.tab[aria-pressed=true],.tab[aria-selected=true]{background:var(--ink);color:#fff;border-color:var(--ink)}.badge{border-radius:var(--r-full);background:var(--surface);color:var(--slate);align-items:center;gap:4px;padding:2px 10px;font-size:13px;font-weight:600;line-height:1.4;display:inline-flex}.badge-amber{background:var(--amber-light);color:var(--amber-dark)}.banner{border-radius:var(--r-lg);background:var(--amber-light);color:var(--amber-dark);align-items:center;gap:12px;padding:12px 16px;font-weight:500;display:flex}.empty{text-align:center;color:var(--stone);border:1px dashed var(--hairline);border-radius:var(--r-lg);padding:24px}.stagger>*{animation:stagger-in .45s var(--glide) both}.stagger>:nth-child(2){animation-delay:90ms}.stagger>:nth-child(3){animation-delay:.18s}.stagger>:nth-child(4){animation-delay:.27s}.stagger>:nth-child(5){animation-delay:.36s}.stagger>:nth-child(n+6){animation-delay:.45s}@keyframes stagger-in{0%{opacity:0;transform:translateY(14px)}}@media (width<=767px){.btn{height:44px}.icon-btn{width:44px;height:44px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-property:opacity!important;transition-duration:.2s!important;animation-duration:.2s!important;animation-iteration-count:1!important}.stagger>*{animation-name:fade-in}.btn:active:not(:disabled),.icon-btn:active{transform:none}}@keyframes fade-in{0%{opacity:0}}.kakao-map{border-radius:var(--r-xl);border:1px solid var(--hairline-soft);background:var(--surface);position:relative;overflow:hidden}.kakao-map-error{text-align:center;place-items:center;padding:16px;display:grid;position:absolute;inset:0}.map-office{background:var(--ink);border-radius:var(--r-full);width:36px;height:36px;box-shadow:var(--shadow-2);place-items:center;font-size:18px;display:grid}.map-pin{text-overflow:ellipsis;white-space:nowrap;border-radius:var(--r-full);border:1px solid var(--hairline);background:var(--canvas);max-width:140px;font:600 12px/1.4 var(--font);color:var(--ink);box-shadow:var(--shadow-2);cursor:pointer;padding:4px 10px;overflow:hidden}.map-dot{border:2px solid var(--canvas);background:var(--action);cursor:pointer;width:20px;height:20px;transition:transform .4s var(--spring), background-color .15s ease;border-radius:50% 50% 50% 0;padding:0;position:relative;transform:rotate(-45deg);box-shadow:0 2px 4px #14103859}.map-dot:after{content:"";border-radius:var(--r-full);background:var(--canvas);width:6px;height:6px;margin:auto;position:absolute;inset:0}.map-dot:hover{background:var(--action-pressed);transform:rotate(-45deg)scale(1.2)}.map-dense .map-dot{border-width:1.5px;width:15px;height:15px}.map-dense .map-dot:after{width:4px;height:4px}.map-pin-active{background:var(--amber);border-color:var(--amber-deep)}.map-active{flex-direction:column;align-items:center;gap:2px;display:flex}.map-active .map-dot,.map-dense .map-active .map-dot{background:var(--amber);cursor:default;border-width:2px;width:24px;height:24px}.map-active .map-dot:after,.map-dense .map-active .map-dot:after{width:8px;height:8px}.save-star{border-radius:var(--r-full);width:28px;height:28px;color:var(--muted);cursor:pointer;transition:transform .25s var(--spring), color .15s ease;background:0 0;border:0;flex:none;padding:0;font-size:18px;line-height:1}.save-star:hover{color:var(--amber-deep);background:var(--surface)}.save-star.saved{color:var(--amber)}.save-star:active{transform:scale(.88)}.save-star:focus-visible{outline:2px solid var(--action);outline-offset:2px}.dialog{border-radius:var(--r-xl);width:min(480px,100% - 32px);max-height:calc(100% - 32px);box-shadow:var(--shadow-3);color:var(--ink);border:0;padding:24px}.dialog::backdrop{background:#1410383d}.dialog[open]{animation:.2s fade-in}.field{flex-direction:column;gap:6px;display:flex}.error-text{color:var(--danger);font-size:13px}
