:root{--paper:#f5f2e9;--ink:#243d31;--green:#31573e;--muted:#687568;--line:#dcded1}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,PingFang HK,Noto Sans TC,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}button:disabled{cursor:not-allowed}a:focus-visible,button:focus-visible{outline:3px solid #b17a34;outline-offset:5px}.shell{max-width:580px;margin:auto;padding:0 28px}header{display:flex;align-items:center;justify-content:space-between;height:98px;border-bottom:1px solid var(--line)}.brand{font-size:29px;font-weight:800;letter-spacing:-1.4px}.brand-dot{font-size:10px;margin-left:4px;color:#d87b4c}.header-note{font-size:11px;letter-spacing:1px;color:var(--muted)}main{padding:38px 0 28px;min-height:75vh}.eyebrow{text-transform:uppercase;font-size:10px;letter-spacing:2px;color:var(--muted)}.eyebrow,h1{font-weight:700}h1{font-size:clamp(48px,10vw,65px);line-height:1.25;letter-spacing:-2px;margin:23px 0 16px}h1 em{font-style:normal;color:#75896b}.intro{font-size:14px;line-height:1.9;max-width:300px;color:var(--muted)}.meal-art{height:245px;display:flex;justify-content:center;align-items:center}.meal-art,.plate{position:relative}.plate{height:181px;width:181px;background:#e8e9dc;border:13px solid #fcfaf5;border-radius:50%;box-shadow:0 10px 35px #243d3110,inset 0 0 0 1px #d5d9c9;transform:rotate(-18deg)}.rice{width:86px;height:92px;background:#fffcf1;border-radius:47%;left:25px;top:30px;box-shadow:inset -8px -8px #f0eddf}.leaf,.rice{position:absolute}.leaf{background:#66865a;width:47px;height:29px;border-radius:80% 0 80% 0;top:21px;right:12px}.leaf-two{transform:rotate(80deg);top:43px;right:0;background:#84996a}.tomato{width:34px;height:34px;border-radius:50%;background:#d88b62;position:absolute;right:19px;bottom:23px;border:6px solid #eaa680}.chopstick{height:187px;width:5px;background:#8b7150;position:absolute;right:17%;top:13px;transform:rotate(22deg);border-radius:3px}.chopstick.two{right:14%;transform:rotate(25deg)}.art-caption{position:absolute;bottom:5px;font-family:Georgia,serif;font-style:italic;font-size:15px;color:#87917d}.decision-entry{margin-top:20px}.primary{display:flex;align-items:center;justify-content:space-between;width:100%;background:var(--green);color:#fffdf4;border:0;border-radius:12px;padding:19px 22px;font-size:17px;letter-spacing:1px}.primary:disabled{opacity:.55}.primary span{font-size:23px}.hint{font-size:12px;line-height:1.8;color:var(--muted);margin:12px 0 20px}.history-link{display:flex;justify-content:space-between;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:17px 2px;font-size:14px}.account{font-size:12px;line-height:1.8;color:var(--muted);padding-top:15px}.account .primary{font-size:14px}.text-button{background:none;border:0;text-decoration:underline;color:var(--ink);padding:8px 0}footer{display:flex;justify-content:space-between;padding:20px 0 28px;border-top:1px solid var(--line);font-size:10px;color:var(--muted)}.small-title{font-size:36px;letter-spacing:-1px}.empty{text-align:center;padding:65px 0}.empty>span{font-size:65px;color:#84996a}.empty h2{font-size:19px}.empty p,.prose p{font-size:14px;line-height:2;color:var(--muted)}.empty a{display:inline-block;margin-top:25px}.prose{padding-bottom:50px}@media (min-width:700px){.shell{margin:25px auto;padding:0 45px;border:1px solid var(--line);border-radius:25px}.meal-art{height:270px}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.demo-badge{display:inline-block;border:1px solid #98a58e;color:var(--green);border-radius:30px;padding:7px 12px;font-size:11px;letter-spacing:1px}.demo-footer,.demo-notice{color:var(--muted);font-size:12px;line-height:1.9}.demo-notice{margin:15px 0 30px}.demo-footer{border-top:1px solid var(--line);padding-top:18px;margin-top:24px}.decision-card{outline-offset:7px;border-radius:12px}.decision-card:focus-visible{outline:2px solid #8a9e7d}.question-meta{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:var(--muted)}.question-meta span:last-child{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--green)}.swipe-instructions{font-size:12px;line-height:1.9;color:var(--muted);margin:12px 0 16px}.direction-labels{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:5px;gap:5px;text-align:center;font-size:11px}.direction-labels span{border-radius:8px;padding:9px 2px;border:1px solid transparent}.direction-labels [data-active=true]{color:#fff;background:var(--green);border-color:var(--green)}.swipe-surface{position:relative;padding:18px 8px 24px;isolation:isolate}.tinder-question{touch-action:none;-moz-user-select:none;user-select:none;-webkit-user-select:none;cursor:-webkit-grab;cursor:grab}.tinder-question:active{cursor:-webkit-grabbing;cursor:grabbing}.swipe-surface[data-locked=true] .tinder-question{pointer-events:none}.question-face{min-height:290px;padding:28px 18px;border:1px solid #cdd4c2;background:#fcfaf5;border-radius:24px;box-shadow:0 9px 17px #243d310b;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.question-face[data-direction=left],.question-face[data-direction=right],.question-face[data-direction=up]{border-color:var(--green);background:#edf1e5}.question-symbol{font-size:44px;color:#84996a;line-height:1}.question-face h2{font-size:clamp(20px,5vw,26px);line-height:1.6;margin:22px 0 18px;font-weight:600}.question-options{display:flex;justify-content:center;gap:16px;font-size:14px}.question-options span:nth-child(2){color:#a5af9f}.card-footnote{font-size:11px;color:var(--muted);margin:26px 0 0}.answer-buttons{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:8px}.answer-buttons button{min-height:75px;border:1px solid #c1cbb9;border-radius:13px;color:var(--ink);background:#fcfaf5;padding:12px 5px;font-size:13px;line-height:1.6}.answer-buttons button span{display:block;line-height:1;margin-bottom:8px}.answer-buttons button:hover:enabled{background:#e4eadb}.answer-buttons button:disabled{opacity:.5}.answer-status{min-height:57px;padding-top:5px;font-size:12px;line-height:1.8;color:var(--muted)}.save-error{padding:14px;border-radius:12px;background:#f5e6d5;color:#734728}.save-error p{margin:0 0 10px}.demo-tools button,.retry-button{min-height:44px;border:1px solid #a3ae97;border-radius:8px;padding:9px 15px;color:var(--ink);background:#fffaf1}.demo-tools{margin-top:22px;font-size:12px;line-height:1.8;color:var(--muted)}.demo-tools summary{cursor:pointer;padding:10px 0}.demo-tools button:disabled{opacity:.6}.demo-complete{margin-top:38px}.demo-complete p{color:var(--muted);line-height:1.9;font-size:14px}.demo-complete ol{padding-left:22px;margin:25px 0}.demo-complete li{padding:14px 0;border-bottom:1px solid var(--line);font-size:13px;line-height:1.8}.demo-complete li strong{display:block;font-size:16px;margin-top:5px}.swipe-surface[data-reduced-motion=true] .tinder-question{transform:none!important}@media (prefers-reduced-motion:reduce){.tinder-question{transform:none!important}}@media (max-width:360px){.shell{padding:0 18px}.answer-buttons{gap:5px}.question-face{padding:22px 12px}}.category-question{padding:20px 0}.category-question h2{font-size:23px;line-height:1.6}.category-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.category-grid button{min-height:65px;padding:15px;border:1px solid #a3ae97;border-radius:12px;background:#fcfaf5;color:var(--ink)}.category-grid button:disabled{opacity:.5}.live-decision{margin-top:24px}.live-decision label{display:block;margin-bottom:12px}.live-decision select{width:100%;min-height:48px;border:1px solid #a3ae97;border-radius:10px;padding:10px;color:var(--ink);background:#fcfaf5;font:inherit}.live-decision li{margin:15px 0;line-height:1.8}.context-panel{margin:1rem 0;padding:.9rem;border:1px solid var(--line,#ddd);border-radius:14px;font-size:.9rem}.restaurant-grid{display:grid;grid-gap:1rem;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr))}.restaurant-card{border:1px solid var(--border,#d6cbbd);border-radius:1rem;padding:1rem;min-width:0;background:#fffcf7}.photo-placeholder,.restaurant-card img{width:100%;height:160px;object-fit:cover;border-radius:.6rem}.photo-placeholder{display:grid;place-items:center;background:#efe9df;color:#666}.places-attribution{margin-top:.8rem;color:#5e5e5e;font-size:12px}.places-attribution>span{font:400 14px Arial,sans-serif;white-space:nowrap;letter-spacing:normal}.restaurant-results button{margin:.3rem}.history-list{display:grid;grid-gap:1.5rem;gap:1.5rem;margin:1.5rem 0}.history-card{padding:1.2rem;border:1px solid #d6cbbd;border-radius:1rem;background:#fffcf7;min-width:0}.history-flip{margin-bottom:.8rem}.history-face{animation:history-reveal .16s ease-out}.history-photo{width:100%;max-height:260px;object-fit:cover;border-radius:.6rem}.history-id{overflow-wrap:anywhere}.history-outcome{font-weight:600}.history-trail>li{margin-bottom:1.4rem}.history-trail h3{font-size:1rem}@keyframes history-reveal{0%{opacity:.6;transform:translateY(3px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.history-face{animation:none}}.outcome-prompt{margin:1rem 0;padding:1rem;border:2px solid #879675;border-radius:1rem;background:#faf7ee}.outcome-form{margin:.8rem 0}.outcome-actions{display:flex;flex-wrap:wrap;gap:.6rem}.outcome-form button{margin:.3rem}.outcome-form input:not([type=radio]){display:block;width:100%;padding:.7rem;font:inherit;margin:.6rem 0;border:1px solid #aaa;border-radius:.5rem}.actual-options label{display:block;padding:.6rem 0}.history-outcome-editor{margin:1rem 0}.history-outcome-editor summary{cursor:pointer;font-weight:600}:root{--paper:#fff8ed;--ink:#322453;--green:#7144dc;--muted:#716580;--line:#e9def6}body{background:radial-gradient(at 10% 10%,#ffdab6,transparent 55%),radial-gradient(at 90% 90%,#d5c7ff,transparent 60%),#fff8ed}.shell{position:relative;width:100%;max-width:480px;height:100dvh;margin:0 auto;padding:0 20px;display:flex;flex-direction:column;overflow:hidden;background:#fffaf2}header{height:64px;flex-shrink:0;border:0;padding-right:44px}.brand{color:#6539c8;font-size:30px}.brand-dot{color:#ff7954}.header-note{font-size:10px;letter-spacing:0}main{flex:1 1;min-height:0;padding:4px 0 8px;overflow:auto;scrollbar-width:thin}footer{flex-shrink:0;padding:10px 0 max(10px,env(safe-area-inset-bottom));border:0}.small-title,h1{font-size:30px;margin:8px 0 12px;letter-spacing:-1px}h1 em{display:block;color:#ed684a}.home-screen{height:100%;display:flex;flex-direction:column}.home-screen h1{font-size:clamp(30px,6dvh,48px)}.account{padding:0}.account-menu{position:absolute;right:18px;top:13px;z-index:30}.account-menu>summary{list-style:none;width:40px;height:40px;display:grid;place-items:center;background:#efe5ff;color:#6539c8;border-radius:50%;cursor:pointer;font-size:24px}.account-menu>summary::-webkit-details-marker{display:none}.settings-panel{position:absolute;right:0;top:48px;width:min(340px,calc(100vw - 40px));max-height:calc(100dvh - 115px);overflow:auto;background:#fffaf2;border:2px solid #d9c3ff;border-radius:24px;padding:20px;box-shadow:0 15px 60px #32245335}.settings-panel h2{font-size:20px;margin-top:0}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.live-decision{margin:0}.session-meta{text-align:center;font-size:12px;color:var(--muted);margin:4px 0}.question-meta{padding:4px 8px;font-size:11px}.question-meta span:first-child{visibility:hidden}.direction-labels{display:none}.swipe-surface{padding:12px 4px 16px;overflow:hidden}.question-face{min-height:0;height:clamp(220px,49dvh,450px);padding:16px 12px;border:0;border-radius:32px;background:#eee3ff;box-shadow:0 8px 0 #d9c5f7;justify-content:space-evenly}.question-face[data-direction=left]{background:#d1f3dc}.question-face[data-direction=right]{background:#ffd9c4}.question-face[data-direction=up]{background:#ffedb1}.question-art{width:100%;max-height:34dvh;flex:1 1;min-height:0}.question-options{width:100%;gap:12px;font-size:clamp(13px,3.6vw,17px);font-weight:700;justify-content:space-around}.question-options span:nth-child(2){color:inherit}.question-options span[aria-hidden]{display:none}.answer-buttons{grid-template-columns:1fr .7fr 1fr;gap:8px}.answer-buttons button,.entry-actions button{border:0;background:#dcf3e1;min-height:56px;border-radius:20px;padding:8px;font-weight:700;font-size:12px}.answer-buttons button:nth-child(2){background:#ffedb1}.answer-buttons button:last-child,.entry-actions button:last-child{background:#ffd4c2}.answer-buttons button span{font-size:22px;margin:0}.answer-status{min-height:0;padding:0}.entry-actions{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px}.entry-swipe{flex:1 1;min-height:0}.home-screen .question-face{height:clamp(220px,46dvh,420px)}.text-button{font-size:12px}.loading-overlay{position:absolute;inset:64px 0 38px;z-index:20;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:22px;background:#fff8edee;border-radius:24px;color:#6539c8}.loading-orbit{width:100px;height:100px;border-color:#ff7954 #7950dc #ebdbff #ebdbff;border-style:solid;border-width:9px;border-radius:50%;animation:food-spin 1.1s linear infinite;display:grid;place-items:center}.loading-orbit span{font-size:42px;color:#ffae39}@keyframes food-spin{to{transform:rotate(1turn)}}.history-list,.restaurant-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:16px;margin:8px 0;padding:0 0 8px}.history-card,.restaurant-card{flex:0 0 100%;scroll-snap-align:start;border:0;background:#f0e7ff;border-radius:24px;padding:16px;max-height:58dvh;overflow-y:auto}.photo-placeholder,.restaurant-card img{height:140px}.restaurant-card p{margin:7px 0;font-size:12px}.restaurant-card h3{margin:12px 0}.restaurant-results h2{font-size:22px;margin:12px 0}.restaurant-results>.hint{font-size:11px;margin:6px 0}.restaurant-results>p:not([role]){font-size:12px}.history-photo{max-height:180px}.outcome-prompt{position:fixed;inset:80px max(20px,calc((100vw - 440px)/2)) 60px;z-index:40;overflow:auto;border:3px solid #af86f2;background:#fff9ef;border-radius:24px;box-shadow:0 0 0 100vmax #32245366}.category-question{background:#eee3ff;padding:24px 12px;border-radius:30px}.category-grid button{background:#fff6db;border:0}@media(min-width:700px){.shell{height:calc(100dvh - 32px);margin:16px auto;border-radius:32px;box-shadow:0 20px 70px #59367b22}}@media(max-height:650px){header{height:54px}.home-screen .question-face,.question-face{height:40dvh}.question-art{max-height:28dvh}.home-screen h1{font-size:28px}.answer-buttons button{min-height:48px}}@media(prefers-reduced-motion:reduce){.loading-orbit{animation:none}}.card-pager{display:flex;align-items:center;justify-content:center;gap:22px;font-size:12px}.card-pager button{width:40px;height:36px;border:0;border-radius:50%;background:#ffdf84;color:var(--ink)}.card-pager button:disabled{opacity:.3}main:has(.live-decision){display:flex;flex-direction:column}.home-screen>.entry-swipe,.live-decision,.live-decision>.decision-card,.live-decision>.entry-swipe{flex:1 1;min-height:0;display:flex;flex-direction:column}.home-screen .swipe-surface,.live-decision .swipe-surface{flex:1 1;min-height:120px}.home-screen .question-face,.home-screen .tinder-question,.live-decision .question-face,.live-decision .tinder-question{height:100%}.live-decision>.restaurant-results{flex:1 1;min-height:0;display:flex;flex-direction:column}.restaurant-results .restaurant-grid{flex:1 1;min-height:150px}.category-question>.question-art{height:18dvh;display:block;margin:auto}.restaurant-results .restaurant-grid{display:block;overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;scroll-snap-type:none;padding:4px 4px 12px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}.restaurant-results .restaurant-card{overflow:visible;max-height:none;margin-bottom:16px}.restaurant-results .restaurant-grid:focus-visible{outline:2px solid var(--green);outline-offset:-2px;border-radius:24px}.results-tabs{display:flex;gap:6px;padding:4px;background:#ede2ff;border-radius:18px;flex-shrink:0}.results-tabs button{flex:1 1;border:0;border-radius:14px;padding:10px;background:transparent;font-weight:700}.results-tabs button[aria-pressed=true]{background:#7544c9;color:white}.restaurant-map-panel{position:relative;flex:1 1;min-height:150px;display:flex;flex-direction:column;margin-top:8px}.restaurant-map-canvas{flex:1 1;min-height:0;border-radius:20px;overflow:hidden}.map-status{font-size:12px;margin:6px 0}.map-loading,.map-message{position:absolute;inset:0 0 28px;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#fff8edee;border-radius:20px;padding:20px}.brand-tagline{font-size:14px;font-weight:500;white-space:nowrap}