@charset "UTF-8";
:root{--ink:#232323;--orange:#ff6b35;--mint:#c4ebdb;--paper:#fffdf5;--yellow:#f6df75;--line:2px solid var(--ink)}
*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Microsoft YaHei","PingFang SC",system-ui,sans-serif;font-size:16px;line-height:1.6}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;border:var(--line)}button:disabled{cursor:not-allowed;opacity:.6}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #1256bd;outline-offset:4px}input:focus,textarea:focus,select:focus{outline:3px solid #1256bd;outline-offset:2px}a{color:inherit;text-decoration:none}.site-header{border-bottom:var(--line)}.header-inner{max-width:1060px;margin:auto;padding:20px 32px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:12px;font-size:22px;font-weight:900}.dice{display:grid;place-items:center;width:40px;height:40px;background:var(--orange);border:var(--line);border-radius:9px;box-shadow:3px 3px 0 var(--ink);font-size:31px;line-height:1;transform:rotate(-7deg)}.header-menu{background:transparent;border:0;padding:8px 0;font-weight:700;font-size:14px;text-decoration:underline;text-underline-offset:5px}main{max-width:630px;margin:auto;padding:35px 24px 24px}.intro{text-align:center;margin-bottom:24px}.intro h1{font-size:34px;line-height:1.5;margin:0;font-weight:900;letter-spacing:-1px}.intro h1 span{display:inline-block;color:#d94718;margin-left:8px}.intro p{color:#716b60;font-size:15px;margin:9px 0 0}.draw-panel{background:white;border:var(--line);border-radius:18px;box-shadow:5px 5px 0 var(--ink);padding:24px 30px}.illustration{height:150px;display:flex;align-items:center;justify-content:center;margin-bottom:12px}.illustration img{width:175px;height:175px;object-fit:contain}.fortune-stage{margin:0 0 20px}.ticket{border:var(--line);background:var(--paper);border-radius:8px;overflow:hidden;transform:rotate(-1deg);box-shadow:3px 3px 0 var(--ink)}.ticket-top{padding:8px 16px;background:var(--yellow);border-bottom:var(--line);display:flex;justify-content:space-between;gap:10px;font-size:13px;font-weight:700}.ticket-result{text-align:center;padding:16px 18px 20px}.ticket-number{display:block;color:#746e60;font-size:12px;letter-spacing:1px}.ticket-result h2{font-size:30px;line-height:1.4;margin:6px 0 9px;font-weight:900;overflow-wrap:anywhere}.ticket-result h2.long-name{font-size:24px}.ticket-result p{font-size:14px;line-height:1.7;color:#746e60;margin:0;overflow-wrap:anywhere}.map-link{display:block;width:fit-content;max-width:100%;margin:15px auto 0;background:var(--mint);border:var(--line);border-radius:6px;padding:8px 15px;font-size:14px;font-weight:700}.draw-button{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;padding:14px 18px;border-radius:8px;background:var(--orange);font-size:20px;font-weight:900;box-shadow:3px 3px 0 var(--ink);transition:transform .15s,box-shadow .15s}.draw-button>span:first-child{font-size:28px;line-height:1}.draw-button:hover:enabled{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink)}.draw-button:active:enabled{transform:translate(3px,3px);box-shadow:none}.draw-button:disabled{background:#e7e2d6;box-shadow:none;opacity:1}.draw-controls>p{margin:12px 0 0;text-align:center;color:#766f62;font-size:13px}.draw-controls b{font-weight:700}.location-status{font-size:13px;line-height:1.8;margin:8px 0 0;color:#766f62;text-align:center;overflow-wrap:anywhere}.nearby-status{font-size:14px;line-height:1.7;margin:14px 0 0;text-align:center;color:#5b5f4b}.nearby-status:empty{display:none}.nearby-status.error{color:#a12e17;background:#fff0e9;border-radius:6px;padding:11px}.secondary-actions{display:flex;align-items:start;justify-content:space-between;gap:18px;margin-top:23px;border-top:1px solid #e5e0d5;padding-top:17px}.text-button{border:0;background:transparent;padding:0;font-size:14px;text-decoration:underline;text-underline-offset:4px;font-weight:500}.secondary-actions>button{white-space:nowrap}summary{font-size:14px;cursor:pointer;color:#5e594e}details{min-width:0}#preferences{flex:1;max-width:285px}#preferences>summary{text-align:right;list-style:none}#preferences>summary::after{content:' ＋';font-weight:700}#preferences[open]>summary::after{content:' −'}.search-filters{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:13px}.search-filters label{font-size:13px;color:#746d61}.search-filters select{display:block;width:100%;margin-top:4px;border:var(--line);border-radius:5px;background:var(--paper);font-size:14px;padding:8px}.preference-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:12px}.secondary-button{font-size:14px;font-weight:700;border:var(--line);border-radius:6px;background:var(--mint);padding:8px 13px}.return-nearby{display:block;margin:16px auto 0}#address-panel{padding-top:17px}#address-form label{display:block;font-size:14px;margin-bottom:7px}.address-row{display:flex;gap:8px}.address-row input{width:100%;min-width:0;flex:1;border:var(--line);border-radius:5px;font-size:14px;padding:10px;background:var(--paper)}.address-row button{flex-shrink:0}.candidate-details{border-top:1px solid #e5e0d5;margin-top:20px;padding-top:16px}.candidate-note{font-size:13px;color:#746d61;margin:12px 0}.nearby-items{display:flex;flex-direction:column;gap:8px;max-height:260px;overflow:auto;padding:0 3px 3px 0}.restaurant-option{display:flex;align-items:center;gap:9px;text-align:left;background:#f2f0e9;border:1.5px solid #b9b2a4;border-radius:6px;padding:9px 11px;max-width:100%;font-size:14px;color:#7b756b}.restaurant-option[aria-pressed="true"]{border-color:var(--ink);background:#fff7da;color:var(--ink)}.restaurant-info{flex:1;min-width:0}.restaurant-info strong{display:block;font-size:14px;overflow-wrap:anywhere}.restaurant-info small{display:block;font-size:12px;color:#7b756b;overflow-wrap:anywhere}.restaurant-distance{font-size:12px;white-space:nowrap}.privacy-note{font-size:12px;color:#827b6f;text-align:center;line-height:1.8;margin:18px 0 0}.site-footer{max-width:996px;margin:12px auto 0;padding:19px 0 23px;border-top:1px solid #ded8ca;display:flex;justify-content:space-between;gap:20px;font-size:12px;color:#817a6c}dialog{width:min(510px,calc(100% - 32px));max-height:90vh;border:var(--line);border-radius:14px;background:var(--paper);box-shadow:5px 5px 0 var(--ink);padding:25px;overflow:auto}dialog::backdrop{background:#23232377;backdrop-filter:blur(3px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.dialog-heading h2{font-size:23px;margin:0}.dialog-heading>button{display:grid;place-items:center;width:34px;height:34px;background:white;border-radius:6px;font-size:23px;line-height:1}.count{display:inline-block;font-size:12px;background:var(--yellow);border:1px solid var(--ink);border-radius:4px;padding:0 6px;vertical-align:middle}.menu-description,.dialog-note{font-size:14px;color:#71695b;line-height:1.8;margin:14px 0 18px}.menu-items{display:flex;flex-wrap:wrap;gap:9px;max-height:250px;overflow:auto;padding:0 3px 3px 0}.food-option{display:flex;align-items:center;gap:7px;background:#f2f0e9;border:1.5px solid #b9b2a4;border-radius:6px;padding:8px 11px;font-size:14px;color:#7b756b;overflow-wrap:anywhere;max-width:100%}.food-option[aria-pressed="true"]{border-color:var(--ink);background:#fff7da;color:var(--ink);box-shadow:1px 1px 0 var(--ink)}.food-check{font-size:12px;font-weight:700}.empty-menu{font-size:14px;color:#71695b}#add-form{margin-top:18px}#add-form label{display:block;font-size:14px;font-weight:700;margin-bottom:7px}.add-row{display:flex;gap:8px}.add-row input{flex:1;min-width:0;width:100%;padding:10px;border:var(--line);border-radius:6px;background:white;font-size:14px}.add-row button{width:43px;flex-shrink:0;font-size:25px;background:var(--mint);border-radius:6px}.menu-actions{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:15px 0 20px}.menu-actions p{font-size:12px;color:#81796b;margin:0}.form-error{font-size:13px;color:#a12e17;line-height:1.7;margin:8px 0 0}.form-error:empty{display:none}textarea{width:100%;resize:vertical;border:var(--line);border-radius:7px;padding:11px;font-size:16px;line-height:1.8;background:white}.dialog-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:17px}.primary-button{background:var(--orange);border-radius:6px;padding:8px 15px;font-size:14px;font-weight:700}.toast{position:fixed;bottom:24px;left:50%;max-width:calc(100% - 32px);transform:translate(-50%,15px);padding:10px 18px;border-radius:8px;background:var(--ink);color:white;font-size:14px;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:10}.toast.visible{opacity:1;transform:translate(-50%,0)}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.drawing .ticket{animation:wiggle .16s ease-in-out infinite alternate}.revealed .ticket{animation:reveal .4s ease-out}@keyframes wiggle{from{transform:rotate(-2deg)}to{transform:rotate(1deg)}}@keyframes reveal{from{opacity:.5;transform:translateY(10px) rotate(-1deg)}to{opacity:1;transform:rotate(-1deg)}}
@media(max-width:700px){.header-inner{padding:16px 20px}.brand{font-size:20px;gap:10px}.dice{width:34px;height:34px;font-size:26px}main{padding:27px 18px 20px}.intro{margin-bottom:20px}.intro h1{font-size:29px}.intro h1 span{margin-left:5px}.intro p{font-size:14px}.draw-panel{padding:20px}.illustration{height:140px;margin-bottom:10px}.illustration img{width:155px;height:155px}.draw-button{font-size:19px}.secondary-actions{gap:12px}.text-button,summary{font-size:13px}.search-filters{grid-template-columns:1fr 1fr;gap:7px}.search-filters select{font-size:13px;padding:7px 4px}.ticket-result h2{font-size:26px}.address-row{flex-wrap:wrap}.address-row input{flex-basis:100%}.privacy-note{font-size:11px}.site-footer{margin:0 20px;padding:17px 0;font-size:11px;gap:10px}.menu-actions{align-items:start}.menu-actions p{text-align:right;max-width:190px}dialog{padding:21px}}
@media(max-width:360px){.intro h1{font-size:25px}.brand{font-size:18px}.draw-panel{padding:17px}.header-menu{font-size:13px}.secondary-actions{gap:8px}.search-filters{grid-template-columns:1fr}.preference-actions{gap:9px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
