:root{color:#24211d;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#f6f8f3;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button{border:0}.app-shell{background:linear-gradient(145deg,#ffcc5933,#0000 34%),linear-gradient(#f7fbf2 0%,#f9f3e8 52%,#eef8f4 100%);grid-template-columns:minmax(0,1.08fr) minmax(340px,.92fr);align-items:stretch;gap:28px;min-height:100vh;padding:36px;display:grid}.decision-panel,.result-area{width:100%}.decision-panel{flex-direction:column;justify-content:center;min-width:0;display:flex}.brand-row{color:#26372f;background:#ffffffd1;border:1px solid #2d443924;border-radius:999px;align-items:center;gap:10px;width:fit-content;min-height:46px;padding:8px 16px 8px 8px;font-weight:800;display:inline-flex;box-shadow:0 10px 30px #31453414}.brand-mark{place-items:center;width:32px;height:32px;display:inline-grid}.brand-mark svg,.empty-state svg,.shaker svg{width:100%;height:100%}.headline-block{max-width:760px;margin-top:34px}.eyebrow{color:#b95035;margin:0 0 14px;font-weight:900}h1{color:#1f1a16;letter-spacing:0;overflow-wrap:anywhere;max-width:780px;margin:0;font-size:62px;line-height:1.04}.intro{color:#5d635e;max-width:600px;margin:22px 0 0;font-size:19px;line-height:1.7}.mode-switch{background:#ffffffb8;border:1px solid #2d443924;border-radius:10px;grid-template-columns:repeat(2,minmax(110px,1fr));gap:6px;width:fit-content;margin-top:28px;padding:5px;display:grid}.mode-switch button,.radius-options button{color:#4e544f;cursor:pointer;background:0 0;border-radius:8px;min-height:40px;padding:0 14px;font-weight:800;transition:background .16s,color .16s,transform .16s}.mode-switch button.active,.radius-options button.selected{color:#fffaf2;background:#2f7f64}.control-block,.category-selector,.custom-editor{max-width:740px;margin-top:20px}.control-title{color:#4c5750;margin:0 0 10px;font-weight:900}.radius-options{flex-wrap:wrap;gap:8px;display:flex}.radius-options button{background:#ffffffc7;border:1px solid #2d443924}.category-selector{background:#ffffffb8;border:1px solid #2d443924;border-radius:8px;gap:12px;padding:14px;display:grid}.category-selector-heading .control-title{margin-bottom:4px}.preference-summary{color:#68716c;margin:0;font-size:13px;font-weight:800}.category-chip-row{scrollbar-width:thin;gap:8px;padding:3px 2px 8px;display:flex;overflow-x:auto}.category-chip-row button{color:#435249;cursor:pointer;background:#fffefb;border:1px solid #2d443929;border-radius:999px;flex:none;align-items:center;gap:7px;min-height:42px;padding:0 14px;font-weight:900;transition:transform .16s,border-color .16s,background .16s,box-shadow .16s;display:inline-flex;box-shadow:0 8px 18px #3240350f}.category-chip-row button.selected{color:#7a3225;background:#fff3de;border-color:#df5e42c7;transform:translateY(-1px);box-shadow:0 12px 24px #b2482f29}.category-chip-row button small{color:#fffaf2;background:#df5e42;border-radius:999px;align-items:center;min-height:22px;padding:0 7px;font-size:11px;display:inline-flex}.custom-editor{background:#ffffffb8;border:1px solid #2d443924;border-radius:8px;gap:14px;padding:16px;display:grid}.group-selector-row,.inline-form,.panel-heading,.save-row,.saved-shop-item{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;display:grid}.group-selector-row,.panel-heading,.save-row,.saved-shop-item{align-items:center}.group-selector-row,.saved-shop-item{grid-template-columns:minmax(0,1fr) auto auto}.group-selector-row span,.save-row span{color:#667069;font-size:13px;font-weight:900}.group-management,.nearby-save-panel,.saved-shop-panel{gap:10px;display:grid}.nearby-save-panel{gap:12px}.nearby-save-panel,.saved-shop-panel{border-top:1px solid #2d44391f;padding-top:14px}.nearby-list-toolbar{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;display:grid}.shop-count-pill{color:#405047;white-space:nowrap;background:#f5f8f2;border:1px solid #2d44391f;border-radius:8px;justify-content:center;align-items:center;min-height:42px;padding:0 12px;font-size:13px;font-weight:900;display:inline-flex}.panel-heading h2,.saved-shop-panel h2{color:#34433b;margin:0;font-size:17px}.nearby-shop-list,.saved-shop-list{gap:6px;max-height:460px;padding-right:2px;display:grid;overflow:auto}.saved-shop-list{max-height:300px}.nearby-shop-option,.saved-shop-item{background:#fff;border:1px solid #2d44391f;border-radius:8px;padding:9px 10px}.nearby-shop-option{cursor:pointer;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.nearby-shop-content,.saved-shop-item span{gap:4px;min-width:0;display:grid}.shop-row-meta{flex-wrap:wrap;justify-content:flex-end;gap:4px;display:flex}.shop-row-meta small{color:#405047;white-space:nowrap;background:#eef6ef;border-radius:999px;align-items:center;min-height:24px;padding:0 8px;font-size:12px;font-weight:900;display:inline-flex}.nearby-shop-content strong,.saved-shop-item strong{color:#283730;overflow-wrap:anywhere}.nearby-shop-content small,.saved-shop-item small,.muted-line{color:#6b746e;font-size:13px;line-height:1.5}label{color:#59635e;gap:6px;font-size:13px;font-weight:800;display:grid}input,select{color:#24211d;background:#fffefb;border:1px solid #2d443929;border-radius:8px;outline:none;width:100%;min-height:42px;padding:0 12px}input[type=checkbox]{accent-color:#2f7f64;width:18px;height:18px;min-height:18px;margin:2px 0 0;padding:0}input:focus,select:focus{border-color:#2f7f64;box-shadow:0 0 0 3px #2f7f6424}.inline-form button,.group-selector-row button,.panel-heading button,.save-row button,.saved-shop-item button{color:#fffaf2;cursor:pointer;white-space:nowrap;background:#2f7f64;border-radius:8px;justify-content:center;align-items:center;gap:6px;min-height:42px;padding:0 12px;font-weight:900;display:inline-flex}.inline-form button:disabled,.group-selector-row button:disabled,.panel-heading button:disabled,.save-row button:disabled{cursor:not-allowed;opacity:.5}.inline-form .ghost-danger,.saved-shop-item .icon-danger{color:#8c3b2e;background:#fff1ed}.form-message{color:#2f7f64;margin:0;font-size:13px;font-weight:900;line-height:1.5}.form-message.error{color:#9b3b2e}.action-row{flex-wrap:wrap;gap:14px;margin-top:26px;display:flex}.primary-button,.secondary-button{cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:10px;min-height:54px;padding:0 22px;font-weight:900;transition:transform .16s,box-shadow .16s,background .16s;display:inline-flex}.primary-button{color:#fffaf2;background:#df5e42;box-shadow:0 12px 28px #b2482f40}.secondary-button{color:#313b35;background:#ffffffdb;border:1px solid #2d443924}.primary-button:hover:not(:disabled),.secondary-button:hover:not(:disabled),.mode-switch button:hover,.radius-options button:hover,.radius-options button:hover{transform:translateY(-1px)}.primary-button:disabled,.secondary-button:disabled{cursor:not-allowed;opacity:.62}.privacy-note{color:#68716c;max-width:620px;margin:18px 0 0;font-size:14px;line-height:1.6}.result-area{align-content:center;gap:16px;display:grid}.status-strip{color:#435249;background:#ffffffb8;border:1px solid #2d443924;border-radius:8px;justify-content:space-between;gap:12px;padding:12px 14px;font-size:14px;font-weight:900;display:flex}.shop-card,.empty-state,.draw-ceremony,.candidate-list{background:#ffffffdb;border:1px solid #2d443924;border-radius:8px;box-shadow:0 24px 54px #32403521}.shop-card,.empty-state,.draw-ceremony{min-height:350px}.shop-card{flex-direction:column;justify-content:space-between;padding:28px;animation:.62s cubic-bezier(.18,.85,.24,1) both result-card-enter;display:flex}.card-topline{color:#667069;justify-content:space-between;align-items:center;gap:12px;font-weight:900;display:flex}.tag{color:#fff;background:#2f7f64;border-radius:999px;align-items:center;min-height:30px;padding:0 10px;font-size:14px;display:inline-flex}.category-tag{color:#2f7f64;background:#eff7ef;border-radius:999px;align-items:center;width:fit-content;min-height:30px;margin-top:24px;padding:0 10px;font-size:13px;font-weight:900;display:inline-flex}.shop-card h2{color:#201b16;letter-spacing:0;overflow-wrap:anywhere;margin:24px 0 0;font-size:42px;line-height:1.15}.address{color:#606862;align-items:flex-start;gap:8px;margin:18px 0 0;line-height:1.6;display:flex}.address svg{color:#df5e42;flex:none;margin-top:3px}.navigation-link{color:#fffaf2;background:#2f7f64;border-radius:8px;align-items:center;gap:8px;width:fit-content;min-height:44px;margin-top:20px;padding:0 14px;font-weight:900;text-decoration:none;transition:transform .16s,box-shadow .16s;display:inline-flex;box-shadow:0 12px 24px #2f7f6433}.navigation-link:hover{transform:translateY(-1px);box-shadow:0 16px 30px #2f7f643d}.meta-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:34px;display:grid}.meta-grid span{color:#334139;text-align:center;overflow-wrap:anywhere;background:#eff7ef;border-radius:8px;place-items:center;min-height:50px;padding:8px;font-size:14px;font-weight:900;display:grid}.empty-state,.draw-ceremony{color:#5f6963;text-align:center;align-content:center;place-items:center;gap:18px;padding:28px;display:grid}.empty-state svg{width:52px;height:52px}.empty-state p,.draw-ceremony p,.message{overflow-wrap:anywhere;max-width:100%;margin:0;line-height:1.7}.draw-ceremony strong{color:#201b16;overflow-wrap:anywhere;max-width:90%;font-size:30px;line-height:1.2}.draw-overlay{z-index:50;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:radial-gradient(circle at 50% 38%,#ffcc5938,#0000 32%),#1d1f1b8f;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.draw-overlay-panel{color:#fffaf2;text-align:center;background:linear-gradient(#2e4336e6,#191f1bf0),#26372f;border:1px solid #fffaf259;border-radius:8px;align-content:center;place-items:center;gap:18px;width:min(640px,100%);min-height:520px;padding:34px 24px;display:grid;box-shadow:0 32px 80px #0000005c}.draw-overlay-panel .draw-preview{color:#fffaf2;text-shadow:0 14px 34px #0000004d;width:min(540px,100%);min-height:96px;font-size:clamp(30px,6vw,54px);line-height:1.12}.lottery-stage{width:min(580px,100%);position:relative}.restaurant-slot-window{background:linear-gradient(#fffaf21a,#fffaf208),#0c14104d;border:1px solid #fffaf23d;border-radius:8px;height:280px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff0f,0 20px 48px #00000038}.restaurant-stream{gap:10px;padding:12px 18px;animation:1.05s linear infinite restaurant-stream-roll;display:grid}.restaurant-stream span{color:#fffaf2db;overflow-wrap:anywhere;background:#ffffff14;border:1px solid #fffaf224;border-radius:8px;place-items:center;min-height:50px;padding:0 18px;font-size:18px;font-weight:900;display:grid}.slot-fade{z-index:2;pointer-events:none;height:82px;position:absolute;left:0;right:0}.slot-fade-top{background:linear-gradient(#1f2a23f5,#1f2a2300);top:0}.slot-fade-bottom{background:linear-gradient(#1f2a2300,#1f2a23f5);bottom:0}.lottery-frame{z-index:3;background:#1d1f1bc2;border:3px solid #ffcc59;border-radius:8px;place-items:center;gap:6px;width:min(500px,100% - 34px);min-height:92px;padding:14px 18px;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 6px #ffcc591f,0 20px 48px #00000057}.frame-label{color:#26372f;background:#ffd980;border-radius:999px;align-items:center;min-height:24px;padding:0 10px;font-size:12px;font-weight:900;display:inline-flex}.lottery-frame .draw-preview{color:#fffaf2;min-height:auto;padding:0;font-size:clamp(28px,5vw,46px);animation:.52s ease-in-out infinite frame-name-jitter}.draw-sparks span{opacity:0;background:#ffcc59;border-radius:999px;width:10px;height:10px;position:absolute}.draw-sparks span:first-child{top:44%;left:10%}.draw-sparks span:nth-child(2){top:38%;right:12%}.draw-sparks span:nth-child(3){bottom:20%;left:18%}.draw-sparks span:nth-child(4){bottom:18%;right:18%}.draw-overlay.revealing .draw-overlay-panel{border-color:#ffd980b8;box-shadow:0 32px 80px #0000005c,0 0 0 10px #ffd98014}.draw-overlay.revealing .draw-preview{animation:.76s cubic-bezier(.18,.85,.24,1) both final-name-reveal}.draw-overlay.revealing .restaurant-stream{animation:.76s cubic-bezier(.18,.85,.24,1) both restaurant-stream-lock}.draw-overlay.revealing .lottery-frame{animation:.9s cubic-bezier(.18,.85,.24,1) both winning-frame-pop}.draw-overlay.revealing .draw-sparks span{animation:.9s ease-out both spark-burst}.draw-overlay.revealing .draw-sparks span:nth-child(2){animation-delay:80ms}.draw-overlay.revealing .draw-sparks span:nth-child(3){animation-delay:.14s}.draw-overlay.revealing .draw-sparks span:nth-child(4){animation-delay:.21s}.draw-overlay-panel .draw-hint{color:#ffd980}.draw-stage-large{width:190px;height:162px}.draw-stage-large .shaker{width:108px;height:108px}.near-miss-track{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:min(420px,100%);display:grid}.near-miss-track span{color:#fff4dd;background:#ffffff14;border:1px solid #fffaf238;border-radius:999px;place-items:center;min-height:34px;padding:0 10px;font-size:13px;font-weight:900;animation:5.2s ease-out both near-miss-flash;display:grid}.near-miss-track span:nth-child(2){animation-delay:.34s}.near-miss-track span:nth-child(3){animation-delay:.72s}.draw-overlay-panel .draw-meter{background:#fff3}.draw-stage{place-items:center;width:150px;height:132px;display:grid;position:relative}.shaker{z-index:2;width:86px;height:86px;animation:.19s ease-in-out infinite shake,5.2s ease-out both tense-lift;position:relative}.fortune-stick{z-index:1;color:#8c3b2e;background:linear-gradient(#fff6e5 0%,#ffd980 100%);border:2px solid #b84a3180;border-radius:999px 999px 12px 12px;place-items:start center;width:38px;height:118px;padding-top:13px;animation:5.2s cubic-bezier(.2,.82,.22,1) both fortune-rise;display:grid;position:absolute;top:4px;left:50%;transform:translate(-50%)translateY(48px)rotate(4deg);box-shadow:0 14px 24px #6c3e2429}.fortune-stick span{writing-mode:vertical-rl;letter-spacing:0;font-size:13px;font-weight:900}.draw-stick{transform-origin:50% 100%;background:#ffcc59;border-radius:999px;width:8px;height:42px;position:absolute;top:-10px;left:50%}.stick-a{transform:translate(-50%)rotate(-18deg)}.stick-b{transform:translate(-50%)rotate(0)}.stick-c{transform:translate(-50%)rotate(18deg)}.draw-kicker,.draw-hint{font-weight:900}.draw-preview{place-items:center;min-height:72px;padding:0 12px;animation:.62s ease-in-out infinite name-pulse;display:grid}.draw-meter{background:#eef0e7;border-radius:999px;width:min(320px,82%);height:9px;overflow:hidden}.draw-meter span{border-radius:inherit;background:linear-gradient(90deg,#2f7f64 0%,#ffcc59 55%,#df5e42 100%);height:100%;animation:5.2s cubic-bezier(.22,.72,.2,1) both draw-meter-fill;display:block}.draw-hint{color:#b95035}.draw-hint span{display:block}.candidate-list{padding:18px}.candidate-list h3{color:#35443b;margin:0 0 12px;font-size:18px}.candidate-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.candidate-grid span{color:#334139;overflow-wrap:anywhere;background:#f3f5ee;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;min-height:44px;padding:9px 10px;font-weight:800;display:flex}.candidate-grid strong{overflow-wrap:anywhere;min-width:0}.candidate-grid small{color:#7a817b;flex:none}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shake{0%,to{transform:rotate(-4deg)translateY(0)}50%{transform:rotate(5deg)translateY(-2px)}}@keyframes tense-lift{0%,76%{filter:drop-shadow(0 10px 14px #3145341a)}88%{filter:drop-shadow(0 18px 20px #3145342e)}to{filter:drop-shadow(0 12px 16px #3145341f)}}@keyframes fortune-rise{0%,68%{opacity:0;transform:translate(-50%)translateY(48px)rotate(4deg)}82%{opacity:1;transform:translate(-50%)translateY(-18px)rotate(-5deg)}to{opacity:1;transform:translate(-50%)translateY(-6px)rotate(-2deg)}}@keyframes name-pulse{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-1px)scale(1.018)}}@keyframes draw-meter-fill{0%{width:12%}62%{width:72%}86%{width:91%}to{width:100%}}@keyframes final-name-reveal{0%{opacity:.72;transform:translateY(8px)scale(.94)}58%{opacity:1;transform:translateY(-4px)scale(1.04)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes restaurant-stream-roll{0%{transform:translateY(-10px)}to{transform:translateY(-250px)}}@keyframes restaurant-stream-lock{0%{opacity:.9;transform:translateY(-220px)}to{opacity:.34;transform:translateY(-180px)}}@keyframes frame-name-jitter{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-2px)scale(1.012)}}@keyframes winning-frame-pop{0%{border-color:#ffcc59;transform:translate(-50%,-50%)scale(.98);box-shadow:0 0 0 6px #ffcc591f,0 20px 48px #00000057}58%{border-color:#fff4dd;transform:translate(-50%,-50%)scale(1.04);box-shadow:0 0 0 12px #ffcc5933,0 0 44px #ffcc5961,0 20px 48px #00000057}to{border-color:#ffd980;transform:translate(-50%,-50%)scale(1);box-shadow:0 0 0 8px #ffcc5924,0 0 32px #ffcc594d,0 20px 48px #00000057}}@keyframes spark-burst{0%{opacity:0;transform:translateY(0)scale(.3)}45%{opacity:1;transform:translateY(-18px)scale(1)}to{opacity:0;transform:translateY(-34px)scale(.6)}}@keyframes final-shake-settle{0%{transform:rotate(-6deg)translateY(-3px)}55%{transform:rotate(4deg)translateY(-5px)}to{transform:rotate(0)translateY(0)}}@keyframes final-stick-pop{0%{opacity:1;transform:translate(-50%)translateY(-4px)rotate(-2deg)scale(.96)}62%{opacity:1;transform:translate(-50%)translateY(-24px)rotate(3deg)scale(1.04)}to{opacity:1;transform:translate(-50%)translateY(-14px)rotate(0)scale(1)}}@keyframes result-card-enter{0%{opacity:0;filter:blur(3px);transform:translateY(22px)scale(.985)}to{opacity:1;filter:blur();transform:translateY(0)scale(1)}}@keyframes near-miss-flash{0%,58%{opacity:.45;transform:translateY(0)}70%{opacity:1;transform:translateY(-3px)}78%{opacity:.62;transform:translateY(0)}90%{opacity:1;transform:translateY(-2px)}to{opacity:.86;transform:translateY(0)}}@media (width<=980px){.app-shell{grid-template-columns:1fr;align-items:start;padding:28px 18px}.decision-panel{justify-content:start}h1{font-size:46px}.shop-card,.empty-state,.draw-ceremony{min-height:300px}}@media (width<=620px){.app-shell{width:100%;padding:22px 14px;overflow-x:hidden}h1{padding-bottom:4px;font-size:32px;line-height:1.14}.headline-block,.control-block,.category-selector,.custom-editor,.result-area{max-width:100%}.mode-switch,.primary-button,.secondary-button{width:100%}.group-selector-row,.inline-form,.panel-heading,.nearby-list-toolbar,.save-row,.saved-shop-item,.meta-grid,.candidate-grid{grid-template-columns:1fr}.nearby-shop-option{grid-template-columns:auto minmax(0,1fr)}.shop-row-meta{grid-column:2;justify-content:flex-start}.draw-overlay{padding:14px}.draw-overlay-panel{min-height:470px;padding:26px 16px}.near-miss-track{grid-template-columns:1fr}}
