:root{color-scheme:light;--ink:#173d35;--paper:#f6f2e7;--yellow:#f6c84c;--line:#c9cebf;--muted:#59665c;font-family:"Microsoft JhengHei","PingFang TC",system-ui,sans-serif;color:var(--ink);background:var(--paper)}
*{box-sizing:border-box}body{margin:0}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible{outline:3px solid #a44c27;outline-offset:5px}button:disabled{cursor:not-allowed;opacity:.45}button, a{-webkit-tap-highlight-color:transparent}.shell{max-width:980px;margin:auto;padding:24px}header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:20px}.brand{border:0;background:none;text-align:left;padding:0;font-size:19px;letter-spacing:-.8px;font-weight:900}.brand span{color:#b56c29}.brand small{display:block;font-size:9px;letter-spacing:2px;margin-top:5px}.edition,.eyebrow,.counter{font-size:11px;font-weight:700;letter-spacing:2px}main{min-height:640px;outline:none;padding:36px 0}h1,h2,p{margin:0}h1{font-size:clamp(40px,7vw,70px);line-height:1.18;letter-spacing:-2px;margin:18px 0}h2{font-size:clamp(28px,5vw,40px);line-height:1.35;margin:16px 0}.intro{color:var(--muted);font-size:15px;line-height:1.9}.home-top{display:grid;gap:22px;align-items:center}.badge{display:inline-block;border:1px solid var(--ink);border-radius:30px;padding:7px 12px;font-size:11px}.art{height:225px;position:relative;display:grid;place-items:center;background:var(--yellow);border-radius:48% 48% 8px 8px;overflow:hidden}.art:after{content:"GOOD BEER. GOOD DAY.";position:absolute;bottom:16px;font-size:10px;letter-spacing:3px}.sun{position:absolute;top:30px;right:32px;font-size:28px}.mug{width:105px;height:130px;background:#fff7d4;border:4px solid var(--ink);border-radius:12px 12px 23px 23px;position:relative;transform:rotate(-9deg);box-shadow:inset 0 -88px #dd941e}.mug:before{content:"";position:absolute;right:-37px;top:23px;width:29px;height:60px;border:7px solid var(--ink);border-radius:0 20px 20px 0}.mug:after{content:"• ᴗ •";position:absolute;left:17px;top:54px;font-weight:900;font-size:25px;white-space:nowrap}.portals{display:grid;gap:14px;margin-top:32px}.portal{display:flex;align-items:center;gap:18px;text-align:left;padding:24px;border:1px solid var(--ink);border-radius:12px;background:transparent;min-height:120px}.portal.primary{background:var(--ink);color:var(--paper)}.portal:hover{transform:translateY(-2px)}.letter{font-size:30px;font-family:Georgia,serif;font-style:italic;opacity:.65}.portal strong{font-size:21px;display:block;margin-bottom:8px}.portal small{font-size:12px;line-height:1.7;display:block}.arrow{margin-left:auto;font-size:24px}.note{font-size:12px;color:var(--muted);line-height:1.8;margin-top:20px}.quiz,.result,.town{max-width:620px;margin:auto}.toolbar{display:flex;gap:20px;align-items:center;margin-bottom:32px}.text-button{background:transparent;border:0;text-decoration:underline;text-underline-offset:5px;padding:12px 4px;font-size:13px}.progress{height:5px;background:#dddccd;flex:1;border-radius:4px;overflow:hidden}.progress div{height:100%;background:var(--ink)}.counter{white-space:nowrap}.options{display:grid;gap:12px;margin:26px 0}.option{display:flex;align-items:center;gap:14px;text-align:left;min-height:67px;padding:17px;border:1px solid var(--line);background:#fffdf6;border-radius:10px;font-size:15px}.option:hover{border-color:var(--ink)}.option[aria-checked="true"]{background:#f8df89;border:2px solid var(--ink);padding:16px}.radio{width:18px;height:18px;border:1px solid var(--ink);border-radius:50%;flex-shrink:0}.option[aria-checked="true"] .radio{background:var(--ink);box-shadow:inset 0 0 0 4px #f8df89}.cta{display:block;width:100%;padding:18px 20px;border:1px solid var(--ink);border-radius:9px;background:var(--ink);color:white;font-weight:700;font-size:15px}.cta.light{background:transparent;color:var(--ink);margin-top:12px}.result-card{background:var(--yellow);border:1px solid var(--ink);border-radius:14px;padding:28px;text-align:center;position:relative}.result-icon{font-size:60px;margin:25px 0 8px}.result-card h1{font-size:42px;margin:12px 0 20px}.result-card blockquote{font-size:17px;line-height:1.8;margin:0 0 24px}.beer{border-top:1px dashed #82702e;padding-top:22px}.beer strong{display:block;font-size:23px;margin:8px 0}.beer p{font-size:13px;line-height:1.8}.tags{font-size:12px;line-height:1.8;margin-top:20px}.actions{margin-top:22px}.invite{border-top:1px solid var(--line);margin-top:26px;padding-top:24px}.invite h2{font-size:21px}.share-box{padding:18px;background:#e7eadd;border-radius:8px;font-size:14px;line-height:1.8;margin-top:12px}.town{text-align:center;padding:25px 0}.town-art{font-size:65px;background:#e5e9dc;border:1px dashed #81937d;border-radius:14px;padding:48px 10px;margin:28px 0}.town .cta{max-width:360px;margin:18px auto 0}footer{border-top:1px solid var(--line);padding:20px 0;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:10px;color:var(--muted)}
@media(min-width:700px){.shell{padding:32px 48px}.home-top{grid-template-columns:1.2fr 1fr;gap:60px}.art{height:310px}.mug{transform:rotate(-9deg) scale(1.25)}.portals{grid-template-columns:1fr 1fr}main{padding:48px 0}.home{padding-top:20px}}
@media(max-width:360px){.shell{padding:18px}.edition{letter-spacing:0}.portal{padding:18px}.result-card{padding:20px}.result-card h1{font-size:36px}}
@media(prefers-reduced-motion:no-preference){.portal,.option{transition:background .15s,transform .15s}main>section{animation:enter .2s ease-out}@keyframes enter{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}}
/* V0.2: compact game entry, readable question cards and an owner review surface. */
html{font-size:16px}.intro{font-size:1rem}.eyebrow,.counter,.badge,.edition{font-size:.75rem}.note{font-size:.8125rem}.text-button{font-size:.875rem}.option{font-size:1rem}.option strong{font-weight:600}.option small{display:block;font-size:.875rem;color:var(--muted);margin-top:5px;line-height:1.5}.portal small{font-size:.875rem}.home{max-width:820px;margin:auto}.home h1{font-size:clamp(36px,6vw,60px)}.review-entry{margin-top:35px;border-top:1px solid var(--line);padding-top:15px;display:flex;justify-content:space-between;align-items:center;gap:15px;flex-wrap:wrap}.review-entry span{font-size:.75rem;color:var(--muted)}.page-title{font-size:clamp(32px,5vw,48px);line-height:1.25}.route-cards{display:grid;gap:16px;margin:28px 0}.route-card{background:var(--yellow);border:1px solid var(--ink);padding:26px;border-radius:14px;text-align:left}.route-number{font-size:.75rem;letter-spacing:1px}.route-card>strong{display:block;font-size:28px;line-height:1.4;margin:22px 0 14px}.route-card p{font-size:1rem;line-height:1.8}.route-bottom{display:flex;justify-content:space-between;border-top:1px solid currentColor;margin-top:24px;padding-top:16px;font-size:.875rem}.expert{background:var(--ink);color:var(--paper)}.option[role="checkbox"] .radio{border-radius:4px}.chips{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 22px}.chips span{border:1px solid var(--line);padding:6px 10px;border-radius:20px;font-size:.8125rem}.result-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px}.result-card{text-align:left}.result-card .result-icon{font-size:40px;margin:22px 0 8px}.result-card h1{font-size:36px;margin:12px 0}.result-card h2{font-size:24px;border-top:1px solid #b3983c;padding-top:20px;margin-top:22px}.flavor-copy{font-size:1rem;line-height:1.85}.style-meta{display:flex;gap:10px;flex-wrap:wrap;font-size:.8125rem;margin:18px 0;color:var(--ink)}.style-meta span{border:1px solid #b49d53;padding:6px 9px;border-radius:5px}.why{font-size:.875rem;line-height:1.8;padding-left:20px;margin-top:20px}.reference,.pending{font-size:.875rem;line-height:1.85;margin-top:24px;border-top:1px solid var(--line);padding-top:16px}.reference p{margin:12px 0}.reference li{margin-bottom:10px}summary{cursor:pointer;min-height:44px;padding:8px 0;font-weight:600}a{color:inherit;text-underline-offset:4px;overflow-wrap:anywhere}a:focus-visible,summary:focus-visible{outline:3px solid #a44c27;outline-offset:4px}.result-card .reference{border-color:#b3983c}.other-results>h2{font-size:22px;margin:30px 0 18px}.alternative{padding:22px;border:1px solid var(--line);border-radius:12px;background:#fffdf7;margin-top:14px}.alternative h3{font-size:21px;margin:12px 0}.alternative .style-meta span{border-color:var(--line)}.pending{padding:18px;background:#e8eadd;border:1px solid var(--line);border-radius:10px}.pending article{border-top:1px solid var(--line);margin-top:15px;padding-top:12px}.pending h3{margin:0 0 8px}.mission{padding:22px;border-left:4px solid var(--ink);margin:24px 0;background:#e7eadd}.mission p{margin:12px 0;font-size:18px;line-height:1.8}.mission small{font-size:.8125rem;line-height:1.7}.empty-card{border:1px dashed var(--ink);padding:28px;border-radius:12px;background:#eeecdf}.empty-card p{line-height:1.8}.empty-card .cta{margin-top:22px}.review{max-width:850px;margin:auto}.review>h2{font-size:26px;margin-top:40px}.review p{line-height:1.9}.review-split{display:grid;gap:20px;margin:30px 0}.review-split article{border:1px solid var(--ink);border-radius:12px;padding:24px}.review-split h2{font-size:24px}.review-question{padding:20px 0;border-bottom:1px solid var(--line)}.review-question h3{margin:8px 0;font-size:20px}.table-scroll{overflow:auto;margin-top:20px;border:1px solid var(--line);border-radius:8px}table{border-collapse:collapse;width:100%;min-width:570px;font-size:.875rem;text-align:left}th,td{padding:14px;vertical-align:top;border-bottom:1px solid var(--line);line-height:1.8}th{background:var(--ink);color:var(--paper)}td small{display:block;font-size:.75rem;color:var(--muted);max-width:350px}td:first-child{min-width:135px}.rules{padding-left:24px;line-height:1.9}.rules li{margin:14px 0}.examples article{padding:20px;border:1px solid var(--line);border-radius:10px;margin-top:16px}.examples h3{margin:0 0 12px;font-size:18px}.examples p{font-size:.875rem;margin:8px 0}.review>.cta{margin-top:30px}.review .result-toolbar{flex-wrap:wrap}footer{font-size:.75rem}.brand small{font-size:.6875rem}
@media(min-width:700px){.route-cards,.review-split{grid-template-columns:1fr 1fr}.taste-grid{grid-template-columns:1fr 1fr}.route-card{padding:22px}.route-card>strong{font-size:26px}.quiz:has(.route-cards){max-width:800px}}
@media(max-width:360px){.brand{font-size:17px}.edition{font-size:10px}.result-card h1{font-size:30px}.result-toolbar .eyebrow{letter-spacing:0}.toolbar{gap:12px}.page-title{letter-spacing:-1px}.result-card{padding:20px}}

/* V0.4 */
.route{max-width:800px}.field-label{display:block;font-size:.875rem;margin:28px 0 10px}.text-input{width:100%;border:1px solid var(--ink);background:#fffdf6;border-radius:10px;padding:18px;font:inherit;font-size:1.125rem;color:var(--ink)}.field-count{display:flex;justify-content:space-between;color:var(--muted);font-size:.8125rem;margin:10px 0 28px}.category-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:26px 0}.category-card{border:1px solid var(--line);background:#fffdf6;border-radius:10px;min-height:118px;padding:16px;text-align:left;display:flex;flex-direction:column;gap:8px}.category-card>span{font-size:24px}.category-card strong{font-size:1rem}.category-card small{font-size:.75rem;color:var(--muted)}.category-card[aria-checked="true"]{border:2px solid var(--ink);background:#f8df89;padding:15px}.recommend-grid{display:grid;gap:14px;margin-top:22px}.recommend-card{border:1px solid var(--line);background:#fffdf6;border-radius:13px;padding:24px;position:relative}.recommend-card.lead{background:var(--yellow);border-color:var(--ink)}.recommend-card h1,.recommend-card h2{font-size:clamp(25px,5vw,34px);margin:22px 0 12px}.recommend-card p{line-height:1.8}.result-rank{position:absolute;right:20px;top:18px;font:italic 28px Georgia,serif;opacity:.35}.category-pill{display:inline-block;border:1px solid currentColor;border-radius:20px;padding:5px 9px;font-size:.75rem}.expert-flow .options{margin-bottom:28px}.wheel-screen{max-width:650px;margin:auto;text-align:center}.persona-line{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin:24px 0}.persona-line span,.persona-line strong{border:1px solid var(--line);padding:7px 12px;border-radius:20px;font-size:.8125rem}.wheel-wrap{width:min(82vw,340px);height:min(82vw,340px);margin:42px auto 24px;position:relative}.wheel-disc{width:100%;height:100%;border-radius:50%;border:8px solid var(--ink);position:relative;overflow:hidden;box-shadow:0 8px 0 var(--ink);will-change:transform}.wheel-label{position:absolute;z-index:1;left:50%;top:50%;width:34%;font-size:calc(.68rem * var(--label-scale));font-weight:800;line-height:1.05;text-align:center;overflow-wrap:anywhere;transform:translate(-50%,-50%) rotate(var(--angle)) translateY(-116px) rotate(calc(-1 * var(--angle)));transform-origin:center;color:#173d35;text-shadow:0 1px rgba(255,255,255,.6)}.wheel-hub{position:absolute;z-index:2;left:50%;top:50%;display:grid;place-items:center;width:52px;height:52px;border:5px solid var(--ink);border-radius:50%;background:var(--paper);font-size:23px;transform:translate(-50%,-50%)}.wheel-pointer{position:absolute;z-index:3;left:50%;top:-28px;transform:translateX(-50%);font-size:39px;color:#b5532b;filter:drop-shadow(0 2px 0 var(--paper))}.wheel-disc.spun{animation:wheel-spin 1.8s cubic-bezier(.12,.72,.18,1) forwards}@keyframes wheel-spin{from{transform:rotate(0)}to{transform:rotate(var(--landing))}}.wheel-pool{font-size:.8125rem;line-height:1.8;color:var(--muted);margin:0 auto 22px}.wheel-result{border-top:1px solid var(--line);margin-top:28px;padding-top:26px;text-align:left}.wheel-result h1{font-size:38px;margin:12px 0}.wheel-result p{line-height:1.8}.submit-button{margin-top:16px}.submitted{max-width:570px;margin:auto;text-align:center}.ticket{background:var(--yellow);border:1px solid var(--ink);border-radius:14px;padding:30px;box-shadow:8px 8px 0 var(--ink);margin-bottom:40px}.ticket-icon{display:block;font-size:54px;margin:22px}.ticket h1{font-size:42px;margin:12px}.ticket-person{font-weight:700;font-size:1.125rem}.ticket-row{border-top:1px dashed var(--ink);padding-top:18px;margin-top:22px;display:flex;justify-content:space-between;gap:12px;font-size:.75rem}.catalog-groups{display:grid;gap:14px;margin:30px 0}.catalog-groups article{border:1px solid var(--line);border-radius:12px;padding:22px}.catalog-groups article>span{font-size:30px}.catalog-groups h2{font-size:22px;margin:8px 0}.catalog-groups p{font-size:.875rem;line-height:1.9}.catalog-groups .text-button{padding-left:0}.invite p{line-height:1.8}.empty-card h1{font-size:34px}.empty-card p{line-height:1.8}
@media(min-width:700px){.category-grid{grid-template-columns:repeat(3,1fr)}.recommend-grid{grid-template-columns:repeat(3,1fr);align-items:start}.recommend-card{padding:20px}.recommend-card h1,.recommend-card h2{font-size:25px}.catalog-groups{grid-template-columns:1fr 1fr}.catalog-groups article:last-child{grid-column:span 2}}
@media(min-width:480px){.wheel-label{transform:translate(-50%,-50%) rotate(var(--angle)) translateY(-142px) rotate(calc(-1 * var(--angle)))}}
.wheel-stage{position:relative;isolation:isolate;overflow:hidden;margin:12px 0 18px;padding:22px 12px 28px;border:1px solid #315c52;border-radius:28px;background:radial-gradient(circle at 50% 45%,#315e52 0,#173d35 48%,#0d2b26 100%);box-shadow:0 18px 40px rgba(23,61,53,.18),inset 0 1px rgba(255,255,255,.15);color:var(--paper)}.wheel-stage:before,.wheel-stage:after{content:"✦";position:absolute;color:#f4cd67;opacity:.7;font-size:18px}.wheel-stage:before{left:8%;top:18%}.wheel-stage:after{content:"·  ✦  ·";right:5%;top:34%;font-size:12px;letter-spacing:5px}.wheel-heading{position:relative;z-index:2;display:grid;gap:4px;text-transform:uppercase}.wheel-heading>span{font-size:.625rem;letter-spacing:3px;color:#e8cc86}.wheel-heading>strong{font:700 clamp(18px,5vw,24px) Georgia,"Times New Roman",serif;letter-spacing:1px}.wheel-heading>small{font-size:.5625rem;letter-spacing:2px;color:#a9c4ba}.wheel-stage .wheel-wrap{width:min(84vw,380px);height:min(84vw,380px);margin:40px auto 20px;z-index:2}.wheel-wrap:before{content:"";position:absolute;inset:-12px;border-radius:50%;background:repeating-conic-gradient(#f4cd67 0 2deg,transparent 2deg 15deg);mask:radial-gradient(circle,transparent 0 67%,#000 68% 72%,transparent 73%);-webkit-mask:radial-gradient(circle,transparent 0 67%,#000 68% 72%,transparent 73%);opacity:.8}.wheel-rim{width:100%;height:100%;padding:9px;border:2px solid #f4cd67;border-radius:50%;background:linear-gradient(145deg,#fff1ad,#b8752f 48%,#f8dc83 74%,#8b5427);box-shadow:0 16px 28px rgba(0,0,0,.38),inset 0 0 0 3px #4c321d}.wheel-stage .wheel-disc{border:4px solid #173d35;outline:2px solid #f7e3a3;box-shadow:inset 0 0 0 2px rgba(255,255,255,.24),inset 0 0 32px rgba(40,24,10,.2);overflow:hidden}.wheel-stage .wheel-label{width:var(--label-width);font-size:calc(.78rem * var(--label-scale));line-height:1.02;text-shadow:none;transform:translate(-50%,-50%) rotate(var(--angle)) translateY(calc(-1 * clamp(92px,31vw,150px))) rotate(calc(-1 * var(--angle)))}.wheel-label>span{display:block;padding:4px 5px;border:1px solid rgba(23,61,53,.55);border-radius:6px;background:rgba(255,253,246,.88);box-shadow:0 2px 5px rgba(23,61,53,.18);letter-spacing:-.2px}.wheel-stage .wheel-hub{width:72px;height:72px;border:3px solid #f4cd67;outline:5px solid var(--ink);background:radial-gradient(circle at 38% 30%,#fff9df,#f1d273 72%,#b8752f);box-shadow:0 5px 12px rgba(0,0,0,.35);line-height:1;grid-template-rows:auto auto}.wheel-hub b{font:800 14px Georgia,serif;letter-spacing:1px}.wheel-hub i{font-style:normal;font-size:20px}.wheel-stage .wheel-pointer{top:-22px;width:54px;height:60px;filter:drop-shadow(0 4px 2px rgba(0,0,0,.35))}.wheel-pointer:before{content:"";position:absolute;left:13px;top:0;width:28px;height:28px;border:4px solid #f6dc89;border-radius:50%;background:#b34f2d;z-index:2}.wheel-pointer i{position:absolute;left:12px;top:20px;width:0;height:0;border-left:15px solid transparent;border-right:15px solid transparent;border-top:30px solid #b34f2d}.wheel-stage .wheel-pool{position:relative;z-index:2;max-width:290px;margin:0 auto;color:#c7d7d0;font-size:.75rem}.wheel-screen .spin-button{border-color:#aa692c;background:linear-gradient(180deg,#f7d36e,#e7a53d);color:#173d35;box-shadow:0 6px 0 #9b5c28,0 10px 24px rgba(23,61,53,.15);text-transform:uppercase;letter-spacing:1px}.wheel-screen .spin-button:active{transform:translateY(4px);box-shadow:0 2px 0 #9b5c28}.wheel-screen .spin-button.again{background:#fffaf0;box-shadow:0 5px 0 #173d35}.wheel-screen .wheel-result{position:relative;overflow:hidden;padding:25px;border:1px solid var(--ink);border-radius:18px;background:#fffdf6;box-shadow:7px 7px 0 #d9dfd5}.wheel-screen .wheel-result:after{content:"★";position:absolute;right:20px;top:14px;font-size:42px;color:#f3c754;opacity:.55}.wheel-screen .wheel-result h1{position:relative;z-index:1}.wheel-disc.spun{animation:wheel-spin 2.35s cubic-bezier(.08,.67,.12,1) forwards}@keyframes wheel-spin{0%{transform:rotate(0) scale(.96)}12%{transform:rotate(18deg) scale(1)}100%{transform:rotate(var(--landing)) scale(1)}}
.input-error{color:#a43e2b;font-weight:700}.persona-line>b{border:1px solid var(--ink);padding:7px 12px;border-radius:20px;font-size:.8125rem;background:var(--yellow)}.wheel-label.number-only{width:30px!important}.wheel-label.number-only>span{display:grid;place-items:center;width:28px;height:28px;margin:auto;padding:0;border-radius:50%;background:#fff9df;font-size:.72rem}.wheel-legend{position:relative;z-index:2;display:grid;grid-template-columns:1fr 1fr;gap:7px 10px;margin:18px auto 0;max-width:350px;text-align:left}.wheel-legend>span{display:grid;grid-template-columns:10px 17px 1fr;align-items:center;gap:5px;min-width:0;color:#eef3ed;font-size:.67rem;line-height:1.2}.wheel-legend i{width:9px;height:9px;border:1px solid rgba(255,255,255,.6);border-radius:50%}.wheel-legend b{font-size:.6rem;color:#e8cc86}.ticket-name{display:inline-block;margin:6px 0 0;padding:5px 10px;border:1px solid var(--ink);border-radius:20px;font-size:.8rem;font-weight:700}.name-entry{max-width:540px}.name-entry .field-count{min-height:24px}
@media(max-width:380px){.wheel-stage{margin-left:-8px;margin-right:-8px;padding-left:8px;padding-right:8px}.wheel-stage .wheel-label{transform:translate(-50%,-50%) rotate(var(--angle)) translateY(-92px) rotate(calc(-1 * var(--angle)));font-size:calc(.7rem * var(--label-scale))}.wheel-stage .wheel-hub{width:62px;height:62px}.wheel-label>span{padding:3px}.wheel-legend{grid-template-columns:1fr;max-width:220px}}
@media(prefers-reduced-motion:reduce){.wheel-disc.spun{animation:none;transform:rotate(var(--landing))}}

/* V0.5: GreatBeer.King scratch-off beer label */
.scratch-screen{max-width:650px;margin:auto;text-align:center}.scratch-stage{position:relative;isolation:isolate;overflow:hidden;margin:12px 0 20px;padding:23px 14px 26px;border:1px solid #315c52;border-radius:28px;background:radial-gradient(circle at 50% 38%,#38695c 0,#173d35 52%,#0d2b26 100%);box-shadow:0 18px 40px rgba(23,61,53,.2),inset 0 1px rgba(255,255,255,.15);color:var(--paper)}.scratch-stage:before,.scratch-stage:after{position:absolute;z-index:-1;color:#f4cd67;opacity:.7}.scratch-stage:before{content:"✦";left:7%;top:20%;font-size:19px}.scratch-stage:after{content:"·  ✦  ·";right:4%;top:42%;font-size:11px;letter-spacing:5px}.scratch-heading{display:grid;gap:4px;text-transform:uppercase}.scratch-heading>span{font-size:.625rem;letter-spacing:3px;color:#e8cc86}.scratch-heading>strong{font:700 clamp(19px,5vw,25px) Georgia,"Times New Roman",serif;letter-spacing:1px}.scratch-heading>small{font-size:.5625rem;letter-spacing:2px;color:#a9c4ba}
.scratch-stack{position:relative;width:min(74vw,300px);height:355px;margin:31px auto 22px}.scratch-stack i,.scratch-stack article{position:absolute;inset:0;border:3px solid #71451f;border-radius:20px;background:#e7b54f;box-shadow:0 14px 22px rgba(0,0,0,.3)}.scratch-stack i:first-child{transform:rotate(-7deg);background:#d66f49}.scratch-stack i:nth-child(2){transform:rotate(6deg);background:#74aaa0}.scratch-stack article{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;background:linear-gradient(150deg,#ffe59b,#ebb64d 55%,#c57c2d);color:#173d35}.scratch-stack article:before,.scratch-stack article:after,.scratch-ticket:before,.scratch-ticket:after{content:"";position:absolute;top:50%;width:22px;height:22px;border:3px solid #71451f;border-radius:50%;background:#173d35;transform:translateY(-50%)}.scratch-stack article:before,.scratch-ticket:before{left:-13px}.scratch-stack article:after,.scratch-ticket:after{right:-13px}.scratch-stack article>span{font:900 14px Georgia,serif;letter-spacing:4px}.scratch-stack article>b{display:grid;place-items:center;width:94px;height:94px;border:3px solid #173d35;border-radius:50%;background:#fff3c8;font-size:42px;box-shadow:0 5px 0 #173d35}.scratch-stack article>strong{font-size:30px}.scratch-stack article>small{font-size:.6rem;font-weight:800;letter-spacing:3px}
.scratch-ticket{position:relative;width:min(78vw,340px);margin:28px auto 22px;border:3px solid #71451f;border-radius:20px;background:#f8e6ad;color:#173d35;box-shadow:0 15px 25px rgba(0,0,0,.34),inset 0 0 0 3px rgba(255,255,255,.35);overflow:hidden}.scratch-top{display:grid;grid-template-columns:1fr auto;gap:5px 14px;padding:18px 20px 15px;border-bottom:1px dashed #8e6a33;text-align:left}.scratch-top>span{grid-column:1/-1;font:900 .62rem Georgia,serif;letter-spacing:3px}.scratch-top>b{font-size:.9rem}.scratch-top>small{font-size:.58rem;letter-spacing:1px}.scratch-prize{position:relative;display:flex;min-height:248px;padding:28px 24px 23px;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(circle,#fffaf0,#f2dd9c);overflow:hidden}.scratch-prize:before{content:"GBK";position:absolute;font:900 100px Georgia,serif;color:#d9ba61;opacity:.12;transform:rotate(-13deg)}.scratch-prize>*:not(canvas){position:relative;z-index:1}.scratch-prize h1{max-width:100%;margin:11px 0 8px;font-size:clamp(27px,8vw,38px);line-height:1.04;overflow-wrap:anywhere}.scratch-prize>p:not(.eyebrow):not(.scratch-note){font-size:.85rem;line-height:1.65}.scratch-prize .style-meta{justify-content:center;margin:14px 0 0}.scratch-note{margin-top:10px;font-size:.72rem;line-height:1.5}.scratch-bottom{display:flex;min-height:56px;padding:13px 18px;align-items:center;justify-content:center;gap:7px;flex-wrap:wrap;border-top:1px dashed #8e6a33;background:#edc76c;font-size:.65rem}.scratch-bottom span,.scratch-bottom strong{padding:3px 7px;border:1px solid rgba(23,61,53,.55);border-radius:15px}.scratch-ticket canvas{position:absolute;z-index:4;inset:0;width:100%;height:100%;touch-action:none;cursor:crosshair;transition:opacity .45s}.scratch-ticket.revealed{animation:scratch-pop .4s ease-out}.scratch-ticket.revealed canvas{opacity:0;pointer-events:none}@keyframes scratch-pop{50%{transform:scale(1.025)}100%{transform:none}}
.scratch-status{min-height:22px;color:#d5e1dc;font-size:.78rem;line-height:1.65}.scratch-tools{display:flex;justify-content:center;gap:2px;flex-wrap:wrap;margin:7px 0}.scratch-tools .text-button{color:#fff1bd}.scratch-draw{display:block;width:min(78vw,340px);min-height:58px;margin:18px auto 8px;border:2px solid #9d6129;border-radius:10px;background:linear-gradient(#f8db7f,#e5a43d);box-shadow:0 6px 0 #8c5325;color:#173d35;font:800 1rem inherit;cursor:pointer}.scratch-draw:active{transform:translateY(4px);box-shadow:0 2px 0 #8c5325}.scratch-pool{margin:15px auto 0;max-width:390px;color:#d5e1dc;font-size:.72rem;text-align:left}.scratch-pool summary{text-align:center;font-size:.72rem;font-weight:600}.scratch-pool>div{display:flex;justify-content:center;gap:6px;flex-wrap:wrap;padding-top:10px}.scratch-pool span{padding:4px 7px;border:1px solid rgba(255,255,255,.25);border-radius:12px}.scratch-screen>.text-button{margin:2px 7px}.scratch-screen>.submit-button{margin-top:10px}.scratch-screen .submit-button:disabled{box-shadow:none}.scratch-screen .persona-line{margin-bottom:22px}
@media(max-width:380px){.scratch-stage{margin-left:-8px;margin-right:-8px;padding-left:8px;padding-right:8px}.scratch-ticket{width:min(83vw,286px)}.scratch-stack{width:min(75vw,260px);height:325px}.scratch-prize{min-height:230px;padding-left:17px;padding-right:17px}.scratch-top{padding-left:15px;padding-right:15px}.scratch-prize h1{font-size:clamp(25px,8.5vw,32px)}}
@media(prefers-reduced-motion:reduce){.scratch-ticket.revealed{animation:none}.scratch-ticket canvas{transition:none}}

/* V0.6: local GreatBeer Town */
.town-plaza{max-width:900px;padding:0;text-align:left}.town-hero{display:grid;gap:24px;margin:27px 0 24px;padding:28px;border:1px solid #315c52;border-radius:24px;background:#173d35;color:#f6f2e7;overflow:hidden}.town-hero h1{max-width:590px;margin:12px 0;font-size:clamp(35px,7vw,62px);color:#f6c84c}.town-hero>div:first-child>p:last-child{max-width:540px;color:#c9d8d2;line-height:1.8}.town-scene{position:relative;display:flex;min-height:180px;padding:35px 16px 24px;align-items:flex-end;justify-content:center;gap:7px;border-radius:100px 100px 14px 14px;background:linear-gradient(#214e45 0 57%,#285c43 58%);overflow:hidden}.town-scene:before{content:"";position:absolute;inset:auto -20px 31px;height:45px;border-radius:50%;background:#153b32}.town-scene span{position:relative;z-index:1;display:grid;place-items:center;width:58px;height:68px;border:3px solid #f2ce72;border-radius:28px 28px 5px 5px;background:#b95e3d;color:#f7dc82;font-size:28px;box-shadow:inset 0 -25px #e6a23e}.town-scene span:nth-of-type(2){height:91px;background:#e6a23e;box-shadow:inset 0 -34px #7ea16d}.town-scene span:nth-of-type(3){height:61px;background:#789e91;box-shadow:inset 0 -22px #c56545}.town-scene b{position:absolute;z-index:2;bottom:8px;font-size:.65rem;letter-spacing:3px;color:#f6dda0}.town-moon{position:absolute;right:24px;top:13px;color:#f6dda0;font:normal 34px Georgia,serif}
.town-filter-wrap{display:flex;gap:8px;margin:20px -4px;padding:4px;overflow-x:auto;scrollbar-width:thin}.town-filter{flex:0 0 auto;min-height:42px;padding:8px 13px;border:1px solid var(--line);border-radius:23px;background:#fffdf6;font-size:.78rem;white-space:nowrap}.town-filter[aria-pressed="true"]{border-color:#173d35;background:#f6c84c;font-weight:800;box-shadow:0 3px 0 #173d35}.town-summary{display:flex;justify-content:space-between;align-items:baseline;margin:28px 0 14px;padding-bottom:12px;border-bottom:1px solid var(--line)}.town-summary strong{font-size:1.15rem}.town-summary span{color:var(--muted);font-size:.75rem}.resident-grid{display:grid;gap:12px}.resident-card{position:relative;display:grid;grid-template-columns:74px 1fr auto;gap:15px;min-height:132px;padding:17px;border:1px solid var(--ink);border-radius:15px;background:#fffdf6;text-align:left;overflow:hidden}.resident-card:hover{transform:translateY(-2px);box-shadow:5px 6px 0 #d2d6c9}.resident-window{position:relative;display:grid;place-items:center;align-self:stretch;border:2px solid var(--ink);border-radius:37px 37px 7px 7px;background:#e4c45f;font-size:29px;box-shadow:inset 0 -31px #d0833b}.resident-card:nth-child(3n+2) .resident-window{background:#8cb4a8;box-shadow:inset 0 -31px #527c71}.resident-card:nth-child(3n) .resident-window{background:#d58b7d;box-shadow:inset 0 -31px #a25449}.resident-window b{position:absolute;right:-9px;top:-9px;padding:4px 6px;border:1px solid var(--ink);border-radius:9px;background:#f6c84c;font-size:.5rem;letter-spacing:1px}.resident-copy{display:flex;min-width:0;flex-direction:column;justify-content:center}.resident-copy small{color:var(--muted);font-size:.62rem;letter-spacing:.3px}.resident-copy strong{margin:7px 0 3px;font-size:1.2rem}.resident-copy>span{overflow:hidden;color:#4f6259;font-size:.77rem;text-overflow:ellipsis;white-space:nowrap}.resident-copy em{margin-top:9px;color:#9a4d30;font:700 .72rem system-ui,sans-serif}.resident-arrow{align-self:center;font-size:18px}.new-resident{background:#fff4c7;box-shadow:5px 5px 0 #173d35}.town-empty{grid-column:1/-1;padding:38px 20px;border:1px dashed #81937d;border-radius:14px;color:var(--muted);text-align:center;line-height:1.8}.town-footer-action{max-width:520px;margin:48px auto 15px;padding-top:29px;border-top:1px solid var(--line);text-align:center}.town-footer-action h2{font-size:24px}.town-footer-action p{margin:8px 0 20px;color:var(--muted);line-height:1.7}.town-footer-action .cta{max-width:360px;margin:auto}
.resident-overlay{position:fixed;z-index:20;inset:0;display:grid;place-items:center;padding:18px;background:rgba(10,36,31,.74);backdrop-filter:blur(5px)}.resident-detail{position:relative;width:min(92vw,440px);max-height:90vh;padding:30px;border:2px solid #173d35;border-radius:21px;background:#f6c84c;box-shadow:10px 12px 0 rgba(8,29,25,.55);overflow:auto;text-align:center}.resident-close{position:absolute;right:14px;top:12px;width:44px;height:44px;border:1px solid #173d35;border-radius:50%;background:#fff3c8;font-size:26px;line-height:1}.resident-detail-icon{display:grid;place-items:center;width:74px;height:74px;margin:5px auto 17px;border:2px solid #173d35;border-radius:50%;background:#fff3c8;font-size:35px;box-shadow:0 5px 0 #173d35}.resident-detail h1{margin:10px 0 4px;font-size:42px}.resident-detail-identity{font-weight:700}.resident-detail blockquote{margin:22px 0;padding:18px 0;border-block:1px dashed #806b2d;font-size:1rem;line-height:1.7}.resident-beer{padding:20px;border:1px solid #173d35;border-radius:13px;background:#fff8dc;text-align:left}.resident-beer>span{font-size:.68rem;font-weight:800;letter-spacing:1px}.resident-beer h2{margin:8px 0;font-size:28px}.resident-beer p{font-size:.84rem;line-height:1.7}.resident-beer .style-meta{margin-bottom:0}.town-plaza:has(.resident-overlay){overflow:hidden}
@media(min-width:700px){.town-hero{grid-template-columns:1.45fr .75fr;align-items:center}.resident-grid{grid-template-columns:1fr 1fr}.town-scene{min-height:220px}.resident-card{min-height:142px}}
@media(max-width:380px){.town-hero{margin-left:-7px;margin-right:-7px;padding:23px 18px}.town-hero h1{font-size:37px}.town-scene{min-height:150px}.resident-card{grid-template-columns:62px 1fr auto;padding:13px;gap:11px}.resident-copy strong{font-size:1.05rem}.resident-detail{padding:25px 18px}.resident-detail h1{font-size:36px}.resident-detail-icon{width:64px;height:64px}}
.pending-resident{border-style:dashed}.pending-resident .resident-window b{white-space:nowrap}.pending-preview-note{margin:0 42px 16px 0;padding:8px 10px;border:1px dashed var(--ink);border-radius:7px;background:#fff4c7;font-size:.72rem;font-weight:800}

.download-result{border-style:dashed}.download-status{min-height:22px;margin:9px 0 0;color:var(--muted);font-size:.75rem;line-height:1.7}.submitted .download-status{margin-bottom:4px}
.turnstile-wrap{display:flex;width:100%;min-height:65px;margin:16px 0;justify-content:center}

/* V0.8: GreatBeer.King website-aligned night palette */
:root{color-scheme:dark;--ink:#f4f4ef;--paper:#070707;--yellow:#eaff68;--line:#363631;--muted:#aaa9a2;--surface:#11110f;--surface-raised:#181815;--accent-ink:#0b0b09;background:var(--paper);color:var(--ink)}
body{background:radial-gradient(circle at 78% -12%,#28271d 0,transparent 34%),var(--paper);color:var(--ink)}
::selection{background:var(--yellow);color:var(--accent-ink)}
button:focus-visible,a:focus-visible,summary:focus-visible{outline-color:var(--yellow)}
header,footer,.review-entry,.invite,.wheel-result,.town-summary{border-color:var(--line)}
.brand span,.eyebrow,.counter,.edition,.review-entry .text-button{color:var(--yellow)}
.badge{border-color:#6f7444;color:var(--yellow)}
.intro,.note,.field-count,.option small,.category-card small,.wheel-pool,.town-summary span,.town-footer-action p{color:var(--muted)}
.art{border:1px solid var(--line);background:radial-gradient(circle at 50% 35%,#25251e,#11110f 72%);color:var(--yellow)}
.mug{border-color:var(--ink);background:#f4f4ef;box-shadow:inset 0 -88px var(--yellow);color:var(--accent-ink)}
.mug:before{border-color:var(--ink)}
.portal,.option,.category-card,.recommend-card,.alternative,.empty-card,.mission,.pending,.share-box,.catalog-groups article,.examples article,.review-split article,.gacha-result{border-color:var(--line);background:var(--surface);color:var(--ink)}
.portal.primary,.route-card,.recommend-card.lead,.ticket{border-color:var(--yellow);background:var(--yellow);color:var(--accent-ink)}
.portal:not(.primary):hover,.option:hover,.category-card:hover{border-color:#85866f;background:var(--surface-raised)}
.route-card.expert{border-color:var(--line);background:var(--surface-raised);color:var(--ink)}
.route-card.expert .route-number,.route-card.expert .route-bottom{color:var(--yellow)}
.progress{background:#292925}.progress div{background:var(--yellow)}
.option[aria-checked="true"],.category-card[aria-checked="true"]{border-color:var(--yellow);background:var(--yellow);color:var(--accent-ink)}
.option[aria-checked="true"] small,.category-card[aria-checked="true"] small{color:#34382a}
.option[aria-checked="true"] .radio{background:var(--accent-ink);box-shadow:inset 0 0 0 4px var(--yellow)}
.text-input{border-color:#505048;background:var(--surface);color:var(--ink)}
.text-input::placeholder{color:#77776f}
.cta,.scratch-draw{border-color:var(--yellow);background:var(--yellow);color:var(--accent-ink);box-shadow:none}
.cta.light{border-color:#55554d;background:var(--surface);color:var(--ink)}
.cta:hover,.portal.primary:hover{filter:brightness(1.06)}
.style-meta{color:inherit}.style-meta span{border-color:currentColor}
.result-card{border-color:var(--line);background:var(--surface-raised)}
.result-card h2,.result-card .reference{border-color:#4b4b42}
.recommend-card.lead .style-meta,.route-card .route-number{color:var(--accent-ink)}
.pending{background:#171813}.mission{border-left-color:var(--yellow)}
table{background:var(--surface)}th{background:var(--yellow);color:var(--accent-ink)}th,td{border-color:var(--line)}
.ticket{box-shadow:8px 8px 0 #35352f}.ticket-row{border-color:var(--accent-ink)}
.persona-line span,.persona-line strong,.chips span{border-color:var(--line)}.persona-line>b{border-color:var(--yellow);background:var(--yellow);color:var(--accent-ink)}
.scratch-stage,.gacha-stage,.wheel-stage{border-color:#393932;background:radial-gradient(circle at 50% 35%,#24241e 0,#10100e 52%,#050505 100%);box-shadow:0 18px 40px rgba(0,0,0,.4),inset 0 1px rgba(255,255,255,.08);color:var(--ink)}
.scratch-stage:before,.scratch-stage:after,.scratch-heading>span,.scratch-tools .text-button,.gacha-heading>span,.wheel-heading>span{color:var(--yellow)}
.scratch-heading>small,.scratch-status,.scratch-pool,.gacha-heading>small,.gacha-pool{color:#aaa9a2}
.scratch-stack i:first-child{background:#2c2c28}.scratch-stack i:nth-child(2){background:#6f782f}.scratch-stack article{border-color:#10100e;background:linear-gradient(150deg,#f3ff9a,var(--yellow) 58%,#b8cf36);color:var(--accent-ink)}
.scratch-ticket{border-color:#3c3c36;background:#efff86;color:var(--accent-ink)}.scratch-prize{background:radial-gradient(circle,#f8ffd1,#eaff68)}.scratch-bottom{border-color:#62683c;background:#cadf45}
.town-hero{border-color:#33332e;background:#10100e;color:var(--ink)}.town-hero h1{color:var(--yellow)}.town-hero>div:first-child>p:last-child{color:#b9b9b1}
.town-scene{background:linear-gradient(#292a1e 0 57%,#353821 58%)}.town-scene:before{background:#171912}.town-scene b,.town-moon{color:var(--yellow)}
.town-filter,.resident-card{border-color:var(--line);background:var(--surface);color:var(--ink)}
.town-filter[aria-pressed="true"]{border-color:var(--yellow);background:var(--yellow);color:var(--accent-ink);box-shadow:0 3px 0 #555d1f}
.resident-card:hover{box-shadow:5px 6px 0 #30302b}.resident-copy>span{color:#b2b2aa}.resident-copy em{color:var(--yellow)}
.new-resident{background:#1b1d14;box-shadow:5px 5px 0 #717b2e}.pending-preview-note{border-color:#646a3c;background:#1b1d14;color:var(--yellow)}
.resident-overlay{background:rgba(0,0,0,.82)}.resident-detail{border-color:#111;background:var(--yellow);box-shadow:10px 12px 0 rgba(0,0,0,.65);color:var(--accent-ink)}.resident-close,.resident-detail-icon,.resident-beer{border-color:#171713;background:#f5f5ef;color:var(--accent-ink)}
.avatar-picker{display:grid;justify-items:center;margin:24px 0 8px;padding:18px 18px 16px;border:1px solid var(--line);background:radial-gradient(circle at 50% 36%,#28291e,#11110f 72%)}.avatar-picker canvas{display:block;width:min(280px,82vw);height:auto}.avatar-picker .avatar-reroll{margin-top:8px;color:var(--yellow);font-weight:800}.avatar-picker small{margin-top:8px;color:var(--muted);text-align:center;line-height:1.6}
@media(max-width:520px){body{background:var(--paper)}.shell{padding-inline:18px}.town-summary{gap:12px}.town-summary span{text-align:right}}

/* V0.9: passport-first journey, native sharing and resident wall */
.entry-links{display:flex;justify-content:space-between;gap:16px;margin-top:14px;flex-wrap:wrap}.name-entry>.result-toolbar{margin-bottom:22px}.name-entry .avatar-picker{margin-top:18px}
.passport-preview-wrap{width:min(100%,540px);margin:30px auto 16px;padding:8px;background:#0a0a08;box-shadow:0 14px 35px rgba(0,0,0,.35)}.passport-preview{display:block;width:100%;height:auto;background:#070707}.share-controls{width:min(100%,540px);margin:0 auto 26px}.share-format-menu{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.share-format-menu[hidden]{display:none!important}.share-format{display:flex;min-height:76px;padding:14px;flex-direction:column;justify-content:center;border:1px solid var(--line);background:var(--surface-raised);color:var(--ink);text-align:left}.share-format:hover{border-color:var(--yellow)}.share-format strong{font-size:.95rem}.share-format small{margin-top:6px;color:var(--muted);font-size:.7rem;letter-spacing:1px}.resident-wall-invite{margin-top:34px;padding:27px;border:1px solid var(--line);background:var(--surface)}.resident-wall-invite .eyebrow{display:block;margin-bottom:8px}.resident-wall-invite .cta{margin-top:18px}
.resident-card{grid-template-columns:104px 1fr auto;min-height:154px;align-items:center}.resident-passport-thumb{position:relative;display:block;width:92px;background:#080806;box-shadow:3px 4px 0 #32322c}.resident-passport-thumb canvas{display:block;width:100%;height:auto}.resident-passport-thumb b{position:absolute;right:-8px;top:-8px;padding:4px 6px;border:1px solid #0b0b09;background:var(--yellow);color:var(--accent-ink);font-size:.5rem;letter-spacing:1px;white-space:nowrap}.resident-passport-dialog{position:relative;width:min(94vw,600px);max-height:94vh;padding:22px;background:#0b0b09;border:1px solid #34342e;box-shadow:12px 14px 0 rgba(0,0,0,.65);overflow:auto}.resident-passport-dialog .passport-preview-wrap{margin:0 auto 15px;padding:0;box-shadow:none}.resident-passport-dialog .share-controls{margin-bottom:0}.resident-passport-dialog .resident-close{z-index:3;right:30px;top:30px;background:#0b0b09;color:var(--yellow);border-color:var(--yellow)}.resident-hung-note{margin:0 55px 15px 0;color:var(--yellow);font-size:1rem;font-weight:900;letter-spacing:1px}.resident-passport-dialog>.cta{margin-top:12px}.just-joined .resident-passport-dialog{animation:hang-passport .7s cubic-bezier(.2,.8,.2,1)}@keyframes hang-passport{0%{opacity:0;transform:translateY(-70px) rotate(-3deg) scale(.86)}70%{opacity:1;transform:translateY(8px) rotate(1deg) scale(1.01)}100%{transform:none}}
@media(min-width:760px){.resident-grid{grid-template-columns:repeat(2,1fr)}.resident-card{grid-template-columns:112px 1fr auto}.resident-passport-thumb{width:100px}}
@media(max-width:520px){.share-format-menu{grid-template-columns:1fr}.passport-preview-wrap{margin-top:22px}.resident-card{grid-template-columns:80px 1fr auto;gap:12px;padding:12px}.resident-passport-thumb{width:72px}.resident-passport-dialog{padding:12px}.resident-passport-dialog .resident-close{right:18px;top:18px}.resident-hung-note{margin:7px 52px 12px 7px}}
@media(prefers-reduced-motion:reduce){.just-joined .resident-passport-dialog{animation:none}}

/* V0.9.1: custom tonight reason and avatar-only resident previews */
.reason-input{min-height:112px;resize:vertical;line-height:1.7}
.resident-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.resident-card{display:block;min-height:0;aspect-ratio:1;padding:8px;border-radius:14px;background:#0b0b09;overflow:visible}
.resident-card canvas{display:block;width:100%;height:auto}
.resident-card>b{position:absolute;z-index:2;right:-7px;top:-7px;padding:5px 7px;border:1px solid #0b0b09;background:var(--yellow);color:var(--accent-ink);font-size:.55rem;letter-spacing:1px;white-space:nowrap}
.resident-card.new-resident{background:#1b1d14}
@media(min-width:760px){.resident-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.resident-card{display:block;min-height:0}}
@media(max-width:380px){.resident-card{display:block;min-height:0;padding:6px}}

/* V0.9.2: beginner three-choice handoff and personal town spot */
.result-guidance{margin:18px 0 28px;padding:26px;border:1px solid var(--line);background:var(--surface)}
.result-guidance h1{margin:0 0 12px;font-size:clamp(30px,6vw,48px)}
.result-guidance p{color:var(--muted);line-height:1.8}
.result-guidance strong{display:inline-block;margin-top:18px;padding:7px 12px;border-radius:30px;background:var(--yellow);color:var(--accent-ink);font-size:.75rem;letter-spacing:1px}
.recommend-card{display:flex;flex-direction:column}
.recommend-card .recommend-select{margin-top:auto;padding-top:15px;padding-bottom:15px}
.town-share-decision{margin-top:28px;padding:28px;border:1px solid var(--line);background:var(--surface);text-align:left}
.town-share-decision h2{font-size:clamp(25px,5vw,34px)}
.town-share-decision>p{color:var(--muted);line-height:1.8}
.decision-actions{display:grid;gap:10px;margin-top:22px}
.town-self{display:grid;grid-template-columns:150px 1fr;gap:24px;align-items:center;margin:24px 0;padding:20px;border:1px solid var(--yellow);background:linear-gradient(135deg,#1b1d14,#11110f);text-align:left;box-shadow:6px 6px 0 #555d1f}
.town-self canvas{display:block;width:100%;height:auto;background:#0b0b09}
.town-self h2{margin:8px 0 4px;font-size:clamp(27px,5vw,38px)}
.town-self p{margin-bottom:15px;color:var(--muted);line-height:1.6}
.town-self .cta{width:auto;margin:0}
@media(max-width:520px){.result-guidance,.town-share-decision{padding:20px}.town-self{grid-template-columns:104px 1fr;gap:14px;padding:14px}.town-self .eyebrow{font-size:.55rem;letter-spacing:1px}.town-self h2{font-size:24px}.town-self .cta{padding:13px 10px;font-size:.78rem}}

/* V0.9.4: bar-menu choices and named town residents */
.recommend-grid{gap:20px}
.recommend-grid .recommend-card,.recommend-grid .recommend-card.lead{min-height:100%;padding:22px 20px 20px;border:1px solid #46463e;border-top:7px solid var(--yellow);border-radius:3px;background:linear-gradient(160deg,#1c1c18,#10100e 72%);color:var(--ink);box-shadow:7px 8px 0 #25251f;overflow:hidden}
.recommend-grid .recommend-card:before{content:"BAR PICK";display:block;margin:-4px 50px 18px 0;color:var(--yellow);font-size:.6rem;font-weight:900;letter-spacing:2px}
.recommend-grid .recommend-card .result-rank{top:13px;right:16px;color:var(--yellow);font-size:34px;opacity:.8}
.recommend-grid .recommend-card .category-pill{align-self:flex-start;border-color:#6b6b60;background:#090908;color:#d9d9d0}
.recommend-grid .recommend-card h1,.recommend-grid .recommend-card h2{margin:21px 0 10px;color:#f6f6ef;font-size:clamp(28px,5vw,38px);line-height:1.1}
.recommend-grid .recommend-card>p:not(.note){min-height:64px;color:#bdbdb5;font-size:.88rem}
.recommend-grid .recommend-card .style-meta{margin-top:18px;color:#d9d9d0}
.recommend-grid .recommend-card .why{margin:18px 0 20px;padding-top:16px;border-top:1px dashed #57574e;color:#d1d1c8}
.recommend-grid .recommend-card .note{color:#99998f}
.recommend-grid .recommend-card .recommend-select{border-color:var(--yellow);background:var(--yellow);color:var(--accent-ink)}
.resident-grid{grid-template-columns:1fr;gap:12px}
.resident-card,.resident-card.new-resident{display:grid;grid-template-columns:92px minmax(0,1fr);gap:15px;min-height:112px;aspect-ratio:auto;padding:10px;border-radius:4px;background:#11110f;text-align:left;overflow:visible}
.resident-card canvas{width:92px;border:1px solid #46463e;background:#080806}
.resident-mini-copy{display:flex;min-width:0;flex-direction:column;align-self:center}
.resident-mini-copy strong{overflow:hidden;color:#f5f5ed;font-size:1.05rem;text-overflow:ellipsis;white-space:nowrap}
.resident-mini-copy small{overflow:hidden;margin-top:8px;color:#a8a89f;font-size:.76rem;line-height:1.5;text-overflow:ellipsis;white-space:nowrap}
.resident-card>b{right:-6px;top:-6px}
@media(min-width:700px){.recommend-grid{align-items:stretch}.resident-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:380px){.resident-card,.resident-card.new-resident{grid-template-columns:76px minmax(0,1fr);gap:11px}.resident-card canvas{width:76px}}

/* V0.9.5: desktop type tuning and compact town dashboard */
.town-self{display:block}
.town-self-profile{display:grid;grid-template-columns:150px 1fr;gap:24px;align-items:center}
.town-self-title{margin:0 0 7px!important;color:var(--ink)!important;font-weight:800}
.drink-history{display:grid;grid-template-columns:150px 1fr;gap:24px;margin-top:20px;padding-top:20px;border-top:1px solid var(--line)}
.drink-history>div>strong{display:block;margin-top:8px;font-size:1.05rem}
.drink-history ol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none}
.drink-history li{display:grid;grid-template-columns:auto 1fr;gap:3px 10px;padding:11px 12px;border:1px solid var(--line);background:#0c0c0a}
.drink-history li>span{grid-row:1/3;color:var(--yellow);font-size:.62rem;font-weight:800;letter-spacing:1px}
.drink-history li>strong{overflow:hidden;font-size:.82rem;text-overflow:ellipsis;white-space:nowrap}
.drink-history li>small{overflow:hidden;color:var(--muted);font-size:.68rem;text-overflow:ellipsis;white-space:nowrap}
.town-more{display:block;margin:16px auto 0;color:var(--yellow)}
@media(min-width:700px){.result-guidance h1{font-size:34px}.recommend-grid .recommend-card h1,.recommend-grid .recommend-card h2{font-size:24px;line-height:1.18;overflow-wrap:anywhere}}
@media(max-width:520px){.town-self-profile{grid-template-columns:104px 1fr;gap:14px}.drink-history{grid-template-columns:1fr;gap:12px}.drink-history ol{grid-template-columns:1fr}}

/* V0.9.6: one-page player profile and richer resident previews */
.entry-fields{margin-top:26px;text-align:left}
.entry-reasons{min-width:0;margin:26px 0 28px;padding:22px;border:1px solid var(--line);border-radius:4px}
.entry-reasons legend{padding:0 8px;color:var(--yellow);font-size:1rem;font-weight:900}
.entry-reasons>p{margin:0 0 16px;color:var(--muted);font-size:.78rem;line-height:1.65}
.entry-reasons .options{margin-bottom:0}
.entry-reasons .field-label{margin-top:20px}
.resident-card,.resident-card.new-resident{grid-template-columns:108px minmax(0,1fr);min-height:150px;padding:12px}
.resident-card canvas{width:108px}
.resident-mini-copy{justify-content:center}
.resident-mini-copy .resident-identity{margin-top:5px;color:#d4d4cc;font-weight:700}
.resident-mini-copy .resident-reason{display:-webkit-box;margin-top:7px;overflow:hidden;color:#9f9f97;line-height:1.45;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.resident-mini-copy em{display:block;margin-top:8px;color:var(--yellow);font-size:.72rem;font-style:normal;font-weight:800;line-height:1.35}
.town-self-reason{color:var(--muted)!important}
@media(max-width:520px){.entry-reasons{padding:18px 14px}.resident-card,.resident-card.new-resident{grid-template-columns:88px minmax(0,1fr);min-height:132px}.resident-card canvas{width:88px}.resident-mini-copy strong{font-size:.98rem}.resident-mini-copy small,.resident-mini-copy em{font-size:.68rem}}

/* V0.9.7: stable entry choices and passport-style scratch cover */
.entry-reasons{margin:28px 0;padding:0;border:0;border-radius:0}
.entry-reasons legend.field-label{display:block;float:none;width:100%;margin:0 0 10px;padding:0;color:var(--ink);font-size:.875rem;font-weight:400;text-align:left}
.entry-reasons>p{clear:both;margin:0 0 16px;text-align:left}
.scratch-cover{width:min(78vw,340px);height:430px;margin:28px auto 22px}
.scratch-cover i,.scratch-cover article{border:2px solid var(--accent-ink);border-radius:2px;box-shadow:9px 10px 0 rgba(0,0,0,.28)}
.scratch-cover i:first-child{background:#292925;transform:rotate(-4deg)}
.scratch-cover i:nth-child(2){background:#f4f4ef;transform:rotate(3deg)}
.scratch-cover article{display:grid;grid-template-rows:auto 1fr auto;padding:24px;background:var(--yellow);color:var(--accent-ink);box-shadow:inset 0 0 0 5px var(--accent-ink),9px 10px 0 rgba(0,0,0,.35);text-align:left}
.scratch-cover article:before,.scratch-cover article:after{content:none}
.scratch-cover article>header,.scratch-cover article>footer{display:flex;width:auto;margin:0;padding:0 0 15px;align-items:baseline;justify-content:space-between;gap:12px;border:0;border-bottom:2px solid var(--accent-ink);background:none;color:inherit}
.scratch-cover article>header strong{font-family:inherit;font-size:17px;font-weight:900;letter-spacing:-.6px;white-space:nowrap}
.scratch-cover article>header small{font-size:.5rem;font-weight:900;letter-spacing:1.3px;text-align:right}
.scratch-cover-body{display:flex;padding:25px 4px 20px;flex-direction:column;align-items:flex-start;justify-content:center}
.scratch-cover-body>span{padding:8px 13px;border-radius:999px;background:var(--accent-ink);color:var(--yellow);font-size:.78rem;font-weight:900}
.scratch-cover-body>small{margin-top:24px;font-size:.55rem;font-weight:900;letter-spacing:2.5px}
.scratch-cover-body>b{margin:7px 0 18px;font-family:inherit;font-size:clamp(52px,16vw,68px);font-weight:900;line-height:.94;letter-spacing:-3px}
.scratch-cover-body>p{display:grid;width:100%;margin:0;padding:0;border:2px solid var(--accent-ink);grid-template-columns:repeat(3,1fr);background:#f4f4ef;font-size:.58rem;font-weight:900;letter-spacing:1px;text-align:center}
.scratch-cover-body>p span{padding:13px 3px}
.scratch-cover-body>p span+span{border-left:1px solid var(--accent-ink)}
.scratch-cover article>footer{padding:14px 0 0;border-top:2px solid var(--accent-ink);border-bottom:0;font-size:.48rem;font-weight:900;letter-spacing:1.2px}
.scratch-cover article>footer strong{text-align:right}
@media(max-width:380px){.entry-reasons{padding:0}.scratch-cover{width:min(82vw,286px);height:385px}.scratch-cover article{padding:20px}.scratch-cover article>header strong{font-size:14px}.scratch-cover-body>b{font-size:60px}}

/* V0.9.8: scratch-card typography follows the site UI system */
.scratch-heading>strong,.scratch-top>span{font-family:inherit}
.scratch-cover-body>small,.scratch-cover article>header small,.scratch-cover article>footer{font-family:inherit}

/* V0.9.9: unified corners, icons and scratch reveal */
:root{--radius-field:5px;--radius-card:5px;--radius-feature:12px;--radius-pill:999px}
.text-input,.option,.category-card,.cta,.share-box,.share-format-menu button{border-radius:var(--radius-field)}
.route-card,.recommend-card,.recommend-grid .recommend-card,.resident-card,.resident-card.new-resident,.catalog-groups article,.review-split article,.town-share-decision,.resident-passport-dialog{border-radius:var(--radius-card)}
.town-hero,.town-self,.scratch-stage{border-radius:var(--radius-feature)}
.badge,.category-pill,.persona-line>b,.persona-line>strong,.persona-line>span,.town-filter{border-radius:var(--radius-pill)}
.category-card>span,.catalog-groups article>span{display:grid;width:40px;height:40px;place-items:center;border:1px solid #5b5b52;border-radius:50%;background:#0b0b09;font-size:20px;filter:grayscale(.2)}
.category-card[aria-checked="true"]>span{border-color:var(--accent-ink);background:var(--accent-ink)}
.scratch-stage{border-color:#3d3d36;background:linear-gradient(160deg,#171714,#090908 72%);box-shadow:8px 9px 0 #20201c;color:var(--ink)}
.scratch-stage:before,.scratch-stage:after{color:var(--yellow);opacity:.45}
.scratch-heading>strong{font-size:clamp(19px,5vw,25px);font-weight:900;letter-spacing:-.4px}
.scratch-heading>span{color:var(--yellow)}
.scratch-ticket{width:min(78vw,340px);border:2px solid var(--accent-ink);border-radius:2px;background:var(--yellow);color:var(--accent-ink);box-shadow:8px 9px 0 #2b2b26;overflow:hidden}
.scratch-ticket:before,.scratch-ticket:after{content:none}
.scratch-top{padding:18px 20px 16px;border-bottom:2px solid var(--accent-ink);background:var(--yellow)}
.scratch-top>span{font-size:.7rem;font-weight:900;letter-spacing:-.3px}
.scratch-top>b{font-size:.8rem}
.scratch-prize{min-height:260px;padding:28px 22px 24px;background:#f4f4ef}
.scratch-prize:before{content:"STYLE";color:#d8d8cf;font-family:inherit;font-size:86px;font-weight:950;opacity:.35;transform:rotate(-8deg)}
.scratch-prize h1{font-family:inherit;font-weight:950;letter-spacing:-1.5px}
.scratch-prize .eyebrow{color:#4f5049}
.scratch-prize .style-meta span{border-color:var(--accent-ink);border-radius:2px}
.scratch-bottom{border-top:2px solid var(--accent-ink);background:var(--yellow)}
.scratch-bottom span,.scratch-bottom strong{border-color:var(--accent-ink);border-radius:var(--radius-pill)}
.scratch-draw{border:1px solid var(--yellow);border-radius:var(--radius-field);background:var(--yellow);box-shadow:none;color:var(--accent-ink)}
.scratch-pool span{border-radius:var(--radius-pill)}

/* V0.9.10: passport typography and quieter scratch-cover hierarchy */
.brand,.shell>header>.edition{font-family:Arial,sans-serif}
.shell>header>.brand{font-weight:400}
.brand small{font-family:system-ui,"Microsoft JhengHei",sans-serif}
.scratch-cover article>header strong,.scratch-top>span{font-family:Georgia,"Times New Roman",serif}
.scratch-cover-body{padding:28px 4px 20px;justify-content:flex-start}
.scratch-cover-body>small{margin-top:27px}
.scratch-cover-body>b{margin:8px 0 0;font-family:system-ui,"Microsoft JhengHei",sans-serif;font-size:clamp(32px,9vw,43px);font-weight:900;line-height:1.12;letter-spacing:-1.8px;white-space:nowrap}
.scratch-cover-body>em{margin-top:10px;color:#34342f;font-size:.72rem;font-style:normal;font-weight:650;line-height:1.5}
.scratch-cover-body>p{margin:auto 0 0}
@media(max-width:380px){.scratch-cover-body{padding-top:23px}.scratch-cover-body>b{font-size:34px}.scratch-cover-body>em{font-size:.66rem}}

/* V0.9.11: hop-mark cover composition */
.scratch-cover-feature{display:grid;width:100%;margin-top:25px;grid-template-columns:minmax(0,1fr) 82px;align-items:center;gap:13px}
.scratch-cover-feature>div{min-width:0}
.scratch-cover-feature small{display:block;font-size:.55rem;font-weight:900;letter-spacing:2.3px}
.scratch-cover-feature b{display:block;margin-top:8px;font-family:system-ui,"Microsoft JhengHei",sans-serif;font-size:clamp(29px,8vw,38px);font-weight:900;line-height:1.14;letter-spacing:-1.6px;white-space:nowrap}
.scratch-cover-feature em{display:block;margin-top:9px;color:#34342f;font-size:.67rem;font-style:normal;font-weight:650;line-height:1.5}
.scratch-cover-mark{display:grid;width:82px;height:82px;margin:0;place-items:center;border:2px solid var(--accent-ink);background:var(--accent-ink);box-shadow:5px 5px 0 #f4f4ef}
.scratch-cover-mark img{display:block;width:68px;height:68px;object-fit:contain}
@media(max-width:380px){.scratch-cover-feature{grid-template-columns:minmax(0,1fr) 66px;gap:10px}.scratch-cover-feature b{font-size:29px}.scratch-cover-feature em{font-size:.61rem}.scratch-cover-mark{width:66px;height:66px}.scratch-cover-mark img{width:54px;height:54px}}
/* Actual beer diary: follows the town's existing monochrome and lime palette. */
.checkin-panel{margin:24px 0;padding:24px 0;border-top:1px solid #777;border-bottom:1px solid #777}
.checkin-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}
.checkin-heading h3{font-size:24px;margin:8px 0}
.checkin-heading p{font-size:14px;margin:0 0 12px}
.checkin-heading .cta{flex-shrink:0}
.checkin-form fieldset{border:0;padding:0;margin:20px 0 0;min-width:0}
.checkin-fields{display:grid;grid-template-columns:1fr 1fr .7fr;gap:16px}
.checkin-fields label{display:flex;flex-direction:column;gap:8px;font-size:14px;min-width:0}
.checkin-fields input{width:100%;min-width:0;box-sizing:border-box;padding:14px;font:inherit;border:1px solid #888;border-radius:6px;background:#faf9f3;color:#111}
.checkin-confirm{display:flex;align-items:center;gap:10px;margin-top:16px;font-size:14px}
.checkin-confirm[hidden]{display:none}
.checkin-confirm input{width:20px;height:20px;flex-shrink:0}
.checkin-form .cta{margin-top:20px}
.checkin-status:empty{display:none}
.checkin-status{margin:16px 0 0}
.checkin-saved{overflow-wrap:anywhere}
@media(max-width:600px){.checkin-heading{align-items:flex-start;flex-direction:column;gap:8px}.checkin-fields{grid-template-columns:1fr}.checkin-form .cta{width:100%}}
.beer-diary{padding:20px 0;border-bottom:1px solid #777}.diary-title{display:flex;align-items:center;justify-content:space-between;gap:16px}.diary-title h3{margin:0;font-size:24px}.diary-list{list-style:none;padding:0}.diary-list li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;padding:20px 0;border-bottom:1px solid #555}.diary-list li>div:first-child{min-width:0;flex:1;overflow-wrap:anywhere}.diary-list strong{font-size:20px}.diary-list p{margin:6px 0}.diary-list time{font-size:13px;opacity:.7}.diary-actions{display:flex;align-items:center;gap:8px}.beer-diary button{padding:9px 14px;font:inherit;cursor:pointer}.beer-diary button:disabled{opacity:.5;cursor:wait}.diary-delete{flex-basis:100%;border:1px solid #888;padding:16px}.diary-edit{border:1px solid #888;padding:20px;margin-top:20px}.diary-edit fieldset{border:0;margin:0;padding:0;min-width:0}.diary-edit h4{margin-top:0}.diary-edit button,.diary-delete button{margin:4px 8px 4px 0}.beer-diary [role=status]:empty{display:none}

.checkin-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:600px){.checkin-fields{grid-template-columns:1fr}}
.account-nav{text-align:right;padding:12px 0;font-size:14px}.account-panel{max-width:760px;margin:35px auto}.account-panel h1{font-size:clamp(28px,5vw,44px);line-height:1.3}.account-panel>p{line-height:1.8}.account-panel a,.account-nav a{color:var(--yellow)}.account-panel .text-button{margin:16px 20px 0 0}.account-residents{list-style:none;padding:0}.account-residents li{border:1px solid #777;padding:20px;margin:16px 0;overflow-wrap:anywhere}.account-residents strong{font-size:22px}.account-panel [role=status]:empty{display:none}
/* Town readability: separate resident identity from the latest actual drink. */
.town-hero h1{max-width:none;font-size:clamp(28px,3vw,38px);line-height:1.3;letter-spacing:0}
.town-hero>div:first-child{min-width:0}
.resident-card,.resident-card.new-resident{grid-template-columns:84px minmax(0,1fr);gap:16px;padding:20px;align-items:start}
.resident-card canvas{width:84px;border-radius:8px}
.resident-mini-copy{align-self:center;gap:5px}
.resident-mini-copy>strong{font-size:20px;line-height:1.4;white-space:normal;overflow-wrap:anywhere}
.resident-mini-copy .resident-identity{margin:0;color:#dfdfd7;font-size:14px;line-height:1.6;font-weight:400;white-space:normal;overflow-wrap:anywhere}
.resident-mini-copy .resident-reason{display:block;margin:2px 0 0;font-size:13px;line-height:1.65;color:#b9b9b1;overflow:visible;overflow-wrap:anywhere;-webkit-line-clamp:unset}
.resident-latest{grid-column:1/-1;display:block;padding-top:14px;border-top:1px solid #3b3b34}
.resident-section-label{display:block;margin-bottom:10px;color:var(--yellow);font-size:12px;font-weight:700;letter-spacing:1px;line-height:1.5}
.beer-facts{display:grid;gap:7px;font-size:14px;line-height:1.6;text-align:left;font-weight:400}
.beer-fact{display:grid;grid-template-columns:76px minmax(0,1fr);gap:10px;align-items:baseline}
.beer-fact-label{color:#aaa99f;font-size:12px;letter-spacing:0}
.beer-fact-value{color:#f1f1e9;overflow-wrap:anywhere}
.beer-empty{color:#aaa99f;font-size:14px}
.own-latest{margin:16px 0 20px;padding-top:14px;border-top:1px solid #45453b}
.town-self .town-account-link{margin:12px 0 0;font-size:13px;line-height:1.6;font-weight:400}
.town-self .town-account-link a{font-size:inherit;font-weight:400;color:#c3c3b8;text-underline-offset:3px}
.town-self-profile>div{min-width:0}
@media(max-width:520px){.resident-card,.resident-card.new-resident{padding:16px;gap:14px}.resident-mini-copy>strong{font-size:18px}.resident-mini-copy .resident-identity{font-size:14px}.resident-mini-copy .resident-reason{font-size:13px}.town-hero h1{font-size:28px}.town-self-profile{align-items:start}}
.rating-field{display:flex;flex-direction:column;gap:8px;margin-top:18px;font-size:14px}.rating-field select{width:100%;max-width:320px;padding:12px;font:inherit;font-size:16px;background:#faf9f3;color:#111;border:1px solid #888;border-radius:6px}.diary-list .latest-checkin>div:first-child>strong{color:var(--yellow)}.diary-new{display:inline-block;margin:0 9px 5px 0;padding:3px 7px;border:1px solid var(--yellow);color:var(--yellow);font-size:10px;line-height:1.3;letter-spacing:1px;vertical-align:middle}.diary-rating,.beer-rating{color:var(--yellow);font-size:13px;line-height:1.6}.beer-summary-line{display:flex;flex-wrap:wrap;gap:4px 12px;color:#deded5;overflow-wrap:anywhere}.beer-summary-line>span{min-width:0;max-width:100%;overflow-wrap:anywhere}.beer-summary-name{font-weight:700;color:#f5f5ed}.beer-summary-meta{font-size:12px;color:#b9b9ae}.beer-summary-line>span+span{border-left:1px solid #55554a;padding-left:12px}
.town-profile-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px}.town-profile-actions .replay-button{font-size:14px;min-height:44px;padding:10px 14px;border:1px solid #606052;border-radius:6px}.resident-social-hint{grid-column:1/-1;font-size:12px;color:#bdbdaf;border-top:1px solid #33332d;padding-top:12px}.card-social{border-top:1px solid #555;margin-top:24px;padding-top:20px;font-size:14px}.card-social h3{font-size:22px}.card-social a{color:var(--yellow)}.card-social form{display:grid;gap:10px;margin:16px 0}.card-social label{display:grid;gap:6px}.card-social textarea,.card-social select{font:inherit;padding:10px;max-width:100%;width:100%;box-sizing:border-box;background:#f6f6ed;color:#111;border:1px solid #777;border-radius:5px}.card-social textarea{resize:vertical}.card-social button{font:inherit;padding:9px 12px;border:1px solid #66665a;border-radius:5px;background:#191915;color:#e6e6dc;cursor:pointer}.card-social button:disabled{opacity:.5;cursor:wait}.card-social .social-heart{color:var(--yellow);font-size:22px}.social-heart span{font-size:13px}.card-social ul{list-style:none;padding:0}.card-social li{padding:14px 0;border-top:1px solid #393930;overflow-wrap:anywhere}.card-social li p{white-space:pre-wrap;line-height:1.7}.card-social time{display:block;font-size:11px;color:#aaa99c;margin-top:5px}.card-social li button{font-size:12px;margin-right:8px}.social-count{font-size:12px;color:#aaa99c}.card-social [role=status]:empty{display:none}
.account-delete-confirm{margin-top:14px;padding:16px;border:1px solid #b89465;background:#201b13}.account-delete-confirm p{line-height:1.7}.account-delete-confirm button{margin:5px 8px 5px 0;padding:10px 12px;font:inherit;cursor:pointer}

.resident-profile-form{margin:16px 0;max-width:520px}.resident-profile-form fieldset{border:0;padding:0;display:grid;gap:14px}.resident-profile-form label{display:grid;gap:8px}.resident-profile-form input,.resident-profile-form textarea{width:100%;box-sizing:border-box;padding:12px;font:inherit}.public-beer-history{padding:24px;background:#151510;color:#f5f5ed;margin:20px 0}.public-beer-entry{padding:16px 0;border-top:1px solid #48483d;overflow-wrap:anywhere}.public-beer-entry p{margin:8px 0;line-height:1.6}.public-beer-entry:first-of-type strong{color:#eaff68}

/* Resident community information: consistent account/town preview. */
.community-meta{grid-column:1/-1;display:flex;flex-direction:column;gap:10px;width:100%}.resident-number{align-self:flex-end;color:#eaff68;font:700 15px Arial,sans-serif}.resident-interactions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;color:#deded5;font-size:14px}.resident-update{background:#eaff68;color:#12120b;border-radius:4px;padding:4px 9px;font-size:12px;font-style:normal;font-weight:800}.resident-visibility{font-size:12px;color:#ffc94f}.account-residents>li>.resident-card{width:100%;text-align:left}.account-residents{list-style:none;padding:0;display:grid;gap:24px}.appeal-form{max-width:600px;margin:20px 0;padding:20px;border:1px solid #55554c}.appeal-form label{display:grid;gap:10px}.appeal-form textarea{width:100%;box-sizing:border-box;font:inherit;padding:12px}.appeal-message{border:1px solid #55554c;padding:18px;margin:16px 0;overflow-wrap:anywhere}.appeal-message p{white-space:pre-wrap}.route .page-title{font-size:clamp(30px,5vw,48px)}

/* Keep the number with the name; social counts share the passport footer. */
.resident-name-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px;width:100%;min-width:0}.resident-name-row>strong{font-size:20px;line-height:1.4;white-space:normal;overflow-wrap:anywhere;min-width:0}.resident-name-row .resident-number{align-self:baseline;flex-shrink:0;white-space:nowrap}.resident-mini-copy>.resident-update{align-self:flex-start;width:max-content;margin:4px 0}.resident-card-footer{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-width:0}.resident-card-footer .resident-social-hint{margin:0;padding:0;white-space:nowrap;font-size:13px;letter-spacing:0}.resident-card-footer .resident-interactions{display:block;margin:0 0 0 auto;white-space:nowrap;font-size:13px;text-align:right;letter-spacing:0}
@media(max-width:520px){.resident-name-row>strong{font-size:18px}.resident-card-footer .resident-social-hint,.resident-card-footer .resident-interactions{font-size:12px}}

.account-introduction{margin-top:36px;padding-top:28px;border-top:1px solid #45453b;max-width:720px}.account-introduction p{font-size:16px;line-height:1.9;overflow-wrap:anywhere}.account-entry-actions{display:flex;flex-direction:column;gap:14px;margin-top:26px}.account-entry-actions .cta{text-align:center;text-decoration:none;white-space:normal}

/* Account actions share the same full-width track and readable link colors. */
.account-introduction{max-width:none}
.account-introduction>p{max-width:720px}
.account-panel #google,.account-entry-actions,.account-entry-actions .cta{width:100%;box-sizing:border-box}
.account-entry-actions a.cta{display:flex;align-items:center;justify-content:center;min-height:58px;color:#0b0b09;background:var(--yellow);border-color:var(--yellow)}
.account-entry-actions a.cta.light{color:var(--yellow);background:transparent}
.account-entry-actions a.cta:hover{color:#0b0b09;background:#f2ffad}
.account-entry-actions a.cta:focus-visible{outline:3px solid #fff;outline-offset:4px}

.resident-mini-copy .resident-social-account{display:block;margin-top:3px;color:#c8c8bd;font-size:13px;line-height:1.65;font-weight:400;overflow-wrap:anywhere}

.town-profile-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:12px}
.town-profile-actions .cta,.town-profile-actions .replay-button{display:flex;align-items:center;justify-content:center;width:100%;min-height:58px;height:100%;box-sizing:border-box;margin:0;padding:14px 12px;border:1px solid #606052;border-radius:6px;font-size:14px;line-height:1.5;text-align:center;white-space:normal}
@media(max-width:520px){.town-profile-actions{grid-template-columns:1fr;grid-auto-rows:1fr}}

.diary-full-link{display:inline-block;margin-top:20px;color:var(--yellow);line-height:1.6}.full-diary{max-width:760px;margin:36px auto}.full-diary h1{font-size:clamp(28px,5vw,42px);line-height:1.4;overflow-wrap:anywhere}

.checkin-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:18px}.checkin-heading>div{min-width:0}.checkin-heading h3{margin:8px 0;font-size:24px;line-height:1.4}.checkin-heading p{margin:0;line-height:1.7;font-size:14px}.checkin-heading [data-checkin-toggle]{width:auto;min-width:120px;white-space:nowrap;margin:0}.checkin-fields select{width:100%;min-width:0;padding:14px;font:inherit;border:1px solid #888;border-radius:6px;background:#faf9f3;color:#111}.diary-list .diary-edit{grid-column:1/-1;width:100%;min-width:0;box-sizing:border-box;margin-top:18px}.town-message-board{margin:24px 0;padding:20px;border:1px solid #55554c;min-width:0}.message-board-heading{display:flex;justify-content:space-between;gap:12px;align-items:center}.message-board-heading h3{font-size:20px}.town-message-board button{padding:8px 12px;font:inherit}.town-message-board textarea{box-sizing:border-box;width:100%;font:inherit;padding:10px;margin:8px 0}.town-message-board details p{overflow-wrap:anywhere}.marquee-window{overflow:hidden;background:#202019;padding:12px 0}.marquee-track{display:flex;gap:48px;width:max-content;color:var(--yellow);animation:town-scroll 30s linear infinite;padding-left:100%}.marquee-track span{white-space:nowrap}.marquee-track.paused,.marquee-window:hover .marquee-track{animation-play-state:paused}@keyframes town-scroll{to{transform:translateX(-100%)}}@media(prefers-reduced-motion:reduce){.marquee-track{animation:none;padding-left:12px;white-space:normal;width:auto;flex-wrap:wrap}.marquee-track span{white-space:normal;overflow-wrap:anywhere}}@media(max-width:600px){.checkin-heading{grid-template-columns:1fr}.checkin-heading [data-checkin-toggle]{width:100%}}

.account-introduction>p{margin:0}.account-introduction>p+p{margin-top:1.9em}

/* Compact typography scoped to the town message board. */
.town-message-board{font-size:13px;line-height:1.6}
.town-message-board .message-board-heading h3{font-size:16px;line-height:1.5}
.town-message-board .marquee-track,.town-message-board .marquee-track strong{font-size:13px}
.town-message-board label,.town-message-board textarea,.town-message-board button{font-size:12px;line-height:1.6}
.town-message-board .note,.town-message-board [role="status"]{font-size:12px;line-height:1.6}

.town-message-board .message-board-heading h3{font-size:12px;line-height:1.6}

.resident-achievements{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:4px;margin:3px 0 5px;max-width:100%;white-space:normal}.resident-achievements:empty{display:none}.resident-mini-copy .resident-achievement,.resident-achievement{display:inline-block;font:700 10px/1.4 Arial,sans-serif;letter-spacing:0;color:#eaff68;background:#26281a;border:1px solid #555c2e;border-radius:4px;padding:3px 5px;overflow-wrap:anywhere}.own-resident-awards{display:flex;flex-direction:column;align-items:flex-start;margin:6px 0}.own-resident-awards .resident-number{align-self:flex-start}.own-resident-awards .resident-achievements{justify-content:flex-start}

/* Keep profile text independent of the achievement column. */
.resident-mini-copy{display:grid;grid-template-columns:minmax(0,1fr) auto;align-self:start;align-items:start;gap:8px 10px}
.resident-mini-copy .resident-name-row{grid-column:1/-1}
.resident-profile-details{display:flex;flex-direction:column;gap:5px;min-width:0}
.resident-mini-copy>.resident-achievements{align-self:start;max-width:100px;margin:0;gap:4px}
.resident-mini-copy .resident-profile-details .resident-identity{margin:0}
.resident-mini-copy .resident-profile-details .resident-reason{margin:0}
/* Compact Tonight's me panel; preserve every field and action. */
.town-self{margin:20px 0;padding:18px;box-shadow:4px 4px 0 #555d1f}
.town-self-profile{grid-template-columns:112px minmax(0,1fr);gap:18px;align-items:start}
.town-self h2{margin:5px 0 3px;font-size:28px;line-height:1.25;overflow-wrap:anywhere}
.town-self .own-resident-awards{flex-direction:row;align-items:baseline;flex-wrap:wrap;gap:4px 10px;margin:4px 0 6px}
.town-self .own-resident-awards .resident-achievements{margin:0}
.town-self .town-self-title{margin:0 0 3px!important;font-size:14px}
.town-self .town-self-reason{margin:3px 0;font-size:13px;line-height:1.5;overflow-wrap:anywhere}
.town-self #resident-profile-editor [role=status]:empty{display:none}
.town-self #resident-profile-editor>[data-edit-profile]{margin:4px 0 8px;padding:6px 0;font-size:13px}
.town-self .town-profile-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;grid-auto-rows:auto}
.town-self .town-profile-actions .cta{min-height:44px;padding:9px 10px;font-size:13px}
.town-self .town-account-link{margin:7px 0 0;font-size:12px}
.town-self .checkin-panel{margin:16px 0 0;padding:14px 0}
.town-self .checkin-heading{grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center}
.town-self .checkin-heading h3,.town-self .diary-title h3{font-size:19px;margin:0 0 4px}
.town-self .checkin-heading p{font-size:13px;line-height:1.5;margin:0}
.town-self .checkin-heading [data-checkin-toggle]{min-width:80px;min-height:44px;padding:10px 14px;width:auto}
.town-self .beer-diary{padding:14px 0 0;border-bottom:0}
.town-self .diary-title{gap:10px;font-size:12px}
.town-self .beer-diary>.note{margin:4px 0;font-size:12px}
.town-self .diary-list{margin:6px 0 0}
.town-self .diary-list li{padding:10px 0;gap:10px}
.town-self .diary-list strong{font-size:18px}
.town-self .diary-list p{margin:3px 0;font-size:13px;line-height:1.5}
.town-self .diary-actions button{min-height:44px;padding:8px 10px;font-size:13px}
.town-self .diary-full-link{margin-top:10px;font-size:13px}
@media(max-width:520px){
 .town-self{padding:14px}
 .town-self-profile{grid-template-columns:72px minmax(0,1fr);gap:12px}
 .town-self h2{font-size:23px}
 .town-self .town-profile-actions .cta{padding:8px 6px;font-size:12px}
 .town-self .diary-actions{align-self:flex-start}
}
.town-contact-footer{margin-top:28px;padding-top:16px;border-top:1px solid var(--line)}
.town-contact-footer>[data-open-appeal]{font-size:13px}
.town-contact-footer .appeal-form{max-width:100%;box-sizing:border-box}
/* Public passport history follows resident-wall typography. */
.resident-passport-dialog .public-beer-history{font-size:14px;line-height:1.6}
.resident-passport-dialog .public-beer-history h3{font-size:12px;line-height:1.5;font-weight:700;letter-spacing:1px;color:var(--yellow);margin:0 0 10px}
.resident-passport-dialog .public-beer-history p{font-size:14px;line-height:1.6}
.resident-passport-dialog .public-beer-entry strong{font-size:14px}
.resident-passport-dialog .public-beer-entry small,.resident-passport-dialog .public-beer-entry p:nth-of-type(2){font-size:12px;color:#b9b9ae}
.resident-passport-dialog .public-beer-entry p:nth-of-type(3){font-size:13px;color:var(--yellow)}
.resident-passport-dialog .public-beer-history button{font-size:13px}

.beer-photo-picker{margin:16px 0;min-width:0;font-size:14px}.beer-photo-picker .note{font-size:12px;line-height:1.6;margin:6px 0}.beer-photo-buttons{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.beer-photo-buttons button{min-height:44px;padding:8px 12px;font:inherit;background:#202019;color:var(--ink);border:1px solid #686858;border-radius:5px}.beer-photo-image{display:block;max-width:320px;margin:10px 0;font-size:12px;color:var(--muted)}.beer-photo-image img{display:block;max-width:100%;max-height:220px;width:auto;height:auto;border:1px solid #55554c;border-radius:6px;object-fit:contain}.photo-status{font-size:12px;line-height:1.6}.photo-status:empty{display:none}

/* Passport entries: separate photo column, resident-wall type and palette. */
.beer-diary{font-size:14px;line-height:1.6;border-color:var(--line)}
.beer-diary .diary-title h3{font-size:19px;line-height:1.5}
.beer-diary .diary-title>span{font-size:12px;color:var(--muted)}
.beer-diary .diary-list>li{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;border-color:var(--line)}
.beer-diary .diary-entry-summary{display:flex;align-items:stretch;gap:24px;width:100%}
.beer-diary .diary-entry-copy{flex:1;min-width:0;max-width:440px;overflow-wrap:anywhere}
.beer-diary .diary-entry-copy>strong{font-size:16px;line-height:1.5;color:#f5f5ed}
.beer-diary .latest-checkin .diary-entry-copy>strong{color:var(--yellow)}
.beer-diary .diary-entry-copy>p{font-size:14px;line-height:1.6;margin:6px 0;color:#deded5}
.beer-diary .diary-entry-copy>.diary-rating{font-size:13px;color:var(--yellow)}
.beer-diary .diary-entry-copy>time{font-size:12px;color:var(--muted);opacity:1}
.beer-diary .diary-entry-photo{position:relative;flex:0 0 180px;max-width:36%;min-width:0;margin-left:auto}
.beer-diary .diary-entry-photo .beer-photo-image{position:absolute;inset:0;margin:0;max-width:100%}
.beer-diary .diary-entry-photo img{width:100%;height:100%;max-height:none;object-fit:contain;background:#11110e;border-color:var(--line)}
.beer-diary .diary-actions{justify-content:flex-end;border-top:1px solid var(--line);padding-top:10px}
.beer-diary .diary-actions button{font-size:13px;min-height:44px;padding:8px 14px;background:transparent;color:var(--ink);border:1px solid var(--line);border-radius:5px}
@media(max-width:520px){
 .beer-diary .diary-entry-summary{gap:14px}
 .beer-diary .diary-entry-photo{flex-basis:104px;max-width:34%}
}

/* Public passport photos follow the owner's diary alignment. */
.public-beer-entry{display:flex;align-items:stretch;gap:24px}
.public-beer-copy{flex:1;min-width:0;max-width:440px;overflow-wrap:anywhere}
.public-beer-copy>p:last-child{margin-bottom:0}
.public-beer-photo{position:relative;flex:0 0 180px;max-width:36%;min-width:0;margin-left:auto}
.public-beer-photo .beer-photo-image{position:absolute;inset:0;margin:0;max-width:100%}
.public-beer-photo img{width:100%;height:100%;max-height:none;object-fit:contain;background:#11110e;border-color:var(--line)}
@media(max-width:520px){
 .public-beer-entry{gap:14px}
 .public-beer-photo{flex-basis:104px;max-width:34%}
}

/* Homepage welcome and supplied Turtle King mark. */
.account-welcome{display:flex;align-items:center;gap:20px;margin:18px 0 22px}
.account-panel .account-welcome h1{margin:0;min-width:0;letter-spacing:-1px}
.account-turtle-logo{flex:0 0 80px;width:80px;height:80px;object-fit:contain;border-radius:14px;background:#fff}
.account-welcome-copy{font-size:16px;line-height:1.9}
.account-welcome-copy ul{margin:18px 0;padding-left:1.4em}
.account-welcome-copy li+li{margin-top:5px}
@media(max-width:520px){.account-welcome{gap:12px}.account-turtle-logo{flex-basis:60px;width:60px;height:60px;border-radius:10px}.account-panel .account-welcome h1{font-size:28px}.account-welcome-copy{font-size:15px}}

.turtle-dance-toggle{flex:0 0 80px;width:80px;height:90px;padding:0;border:0;background:transparent;cursor:pointer}
.account-turtle-logo{background:transparent;border-radius:0;transform-origin:50% 90%;animation:turtle-dance 1.8s ease-in-out infinite}
.turtle-dance-toggle.paused .account-turtle-logo{animation-play-state:paused}
@keyframes turtle-dance{0%,100%{transform:translateY(0) rotate(-7deg)}25%{transform:translateY(-8px) rotate(6deg)}50%{transform:translateY(0) rotate(7deg)}75%{transform:translateY(-8px) rotate(-6deg)}}
@media(max-width:520px){.turtle-dance-toggle{flex-basis:60px;width:60px;height:72px}}
@media(prefers-reduced-motion:reduce){.account-turtle-logo{animation:none}}

/* v1.4.1: compact character fields and town navigation. */
.name-entry .entry-fields{margin-top:18px}
.name-entry .entry-fields>.field-label{margin-top:16px;margin-bottom:6px}
.name-entry .text-input{padding:11px 12px;font-size:16px;min-height:44px}
.name-entry .field-count{margin-top:4px;min-height:20px;font-size:12px}
.name-entry .entry-fields>.note{margin-top:6px;font-size:12px}
.name-entry .entry-reasons{margin:18px 0}
.name-entry .entry-reasons>p{margin-bottom:10px}
.name-entry .entry-reasons .options{gap:8px;margin-top:12px}
.name-entry .entry-reasons .option{min-height:52px;padding:10px 12px;font-size:14px}
.name-entry .entry-reasons .option[aria-checked="true"]{padding:9px 11px}
.name-entry .entry-reasons .option small{font-size:12px;margin-top:2px}
.town-settings-link{color:var(--ink);text-decoration:none;display:inline-block}
.town-settings-link:hover{color:var(--yellow);border-color:var(--yellow)}
.town-plaza>.result-toolbar{flex-wrap:wrap;gap:12px;justify-content:space-between}
.town-scene>span{transform-origin:center bottom;animation:town-house-beat 1.8s ease-in-out infinite}
.town-scene>span:nth-of-type(2){animation-delay:.2s}
.town-scene>span:nth-of-type(3){animation-delay:.4s}
@keyframes town-house-beat{0%,60%,100%{transform:scaleY(1)}25%{transform:scaleY(1.14)}}
@media(prefers-reduced-motion:reduce){.town-scene>span{animation:none}}

.town-footer-action h2{color:var(--ink);font-weight:700}

/* Compact public comments. */
.card-social{margin-top:16px;padding-top:14px;font-size:13px}
.card-social h3{font-size:18px;margin:0 0 10px}
.card-social h4{font-size:13px;margin:12px 0 6px}
.card-social form{gap:6px;margin:10px 0}
.card-social textarea{padding:8px;min-height:60px}
.card-social button{padding:7px 10px;font-size:13px}
.card-social .social-heart{font-size:17px}
.card-social ul{margin:6px 0}
.card-social li{padding:10px 0}
.card-social time{display:inline;margin-left:8px;font-size:11px}
.card-social li p{margin:4px 0;line-height:1.6}
.card-social .resident-owner-comment>strong,.card-social .resident-owner-comment>p{color:var(--yellow)}

/* A subtle fluorescent invitation to the resident's own passport. */
.town-profile-actions .own-passport-glow{color:var(--yellow);animation:own-passport-glow 3s ease-in-out infinite}
@keyframes own-passport-glow{0%,100%{text-shadow:0 0 3px rgba(234,255,104,.2)}50%{text-shadow:0 0 7px rgba(234,255,104,.65),0 0 14px rgba(234,255,104,.25)}}
@media(prefers-reduced-motion:reduce){.town-profile-actions .own-passport-glow{animation:none;text-shadow:0 0 4px rgba(234,255,104,.3)}}
