:root{--ink:#17241f;--cream:#f4f0e6;--paper:#fffdf8;--green:#1f5544;--deep:#173c32;--gold:#c69a49;--rust:#a65f43;--muted:#68716c;--line:#d9d2c3;--ease:cubic-bezier(.22,.72,.22,1)}
*{box-sizing:border-box}html{background:var(--cream)}body{margin:0;color:var(--ink);background:radial-gradient(circle at 50% -12%,#fffdf8 0,#f4f0e6 48%,#e9e1d2 100%);font-family:Arial,"Microsoft YaHei",sans-serif}.page{width:min(100%,560px);min-height:100svh;margin:auto;padding:26px 22px 44px;opacity:1;transform:translateY(0);transition:opacity .34s var(--ease),transform .4s var(--ease),filter .32s ease}.page.page-enter{opacity:0;transform:translateY(18px);filter:blur(2px)}.page.page-exit{opacity:0;transform:translateY(-15px);filter:blur(2px)}button{font:inherit;touch-action:manipulation}.eyebrow{margin:0 0 11px;letter-spacing:.22em;font-size:10px;font-weight:700;color:var(--green)}
.intro{display:flex;flex-direction:column;align-items:center;text-align:center;justify-content:center}.brandmark{width:58px;height:58px;border:1.5px solid var(--green);border-radius:50%;display:grid;place-items:center;position:relative;margin-bottom:13px;font:28px Georgia;color:var(--green)}.brandmark:after{content:"";position:absolute;width:35px;height:7px;border:2px solid var(--green);border-top:0;border-radius:0 0 50% 50%;bottom:8px}.intro h1{margin:0;font:500 47px/1.04 Georgia,"Songti SC",serif;letter-spacing:-.04em}.intro h1 em{font-style:normal;color:var(--green)}.lead{color:#4d5752;line-height:1.75;margin:18px 0 20px;font-size:14px}.hero{width:100%;position:relative;aspect-ratio:1.48;border-radius:24px;overflow:hidden;margin:0 0 22px;border:1px solid #cfc6b5;background:linear-gradient(180deg,#d8c6a5 0 40%,#967253 40% 43%,#5d4031 43%);box-shadow:0 15px 36px #372c1f18}.hero img{width:100%;height:100%;object-fit:cover;display:block}.hero-fallback{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:center;padding:0 10px 25px;background:radial-gradient(circle at 50% 32%,#f0dfbd 0 9%,transparent 10%),linear-gradient(180deg,transparent 0 38%,#4b342a 39% 44%,transparent 45%)}.hero-fallback:before{content:"FRASER'S HAT SHOP";position:absolute;top:19%;left:50%;transform:translateX(-50%);font:700 10px Georgia;letter-spacing:.18em;color:#315347;white-space:nowrap}.visitor{font-size:30px;margin:0 -1px;filter:saturate(.72) drop-shadow(0 4px 2px #362b2430);animation:bob 3.2s ease-in-out infinite}.visitor:nth-child(2n){animation-delay:-1.1s}.visitor:nth-child(3n){animation-delay:-2s}@keyframes bob{50%{transform:translateY(-3px)}}.primary{width:100%;border:0;border-radius:16px;background:var(--green);color:#fff;padding:17px;font-weight:700;box-shadow:0 9px 24px #244d3f2e;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.primary:active{transform:scale(.985)}.meta{margin-top:16px;color:var(--muted);font-size:11px}.intro>small,.quiz>small{color:#8b918c;font-size:10px;margin-top:22px}
.quiz{display:flex;flex-direction:column}.quiz header{display:grid;grid-template-columns:38px 1fr 42px;align-items:center;font-size:11px;color:var(--muted)}.quiz header button{border:0;background:none;font-size:23px;text-align:left;color:var(--green);cursor:pointer}.quiz header span{text-align:center;letter-spacing:.12em}.quiz header b{font-weight:400;text-align:right}.progress{height:3px;background:#ddd6c8;margin:17px 0 43px;border-radius:4px;overflow:hidden}.progress i{display:block;height:100%;background:linear-gradient(90deg,var(--gold),#d5b86b);transition:width .45s var(--ease)}.question-wrap{flex:1}.question-kicker{color:var(--gold);font-size:10px;font-weight:700;letter-spacing:.18em;margin:0}.quiz h2,.result h1,.ticket h2,.split h2,.direction h2{font-family:Georgia,"Songti SC",serif}.quiz h2{font-size:28px;line-height:1.42;margin:12px 0 0;font-weight:600}.note{color:var(--muted);font-size:13px;line-height:1.7;margin-top:14px;padding-left:12px;border-left:2px solid #d8bc7d}.options{display:grid;gap:11px;margin-top:27px}.option{--i:0;border:1px solid var(--line);background:#fffdf8d9;border-radius:16px;padding:15px 15px;display:grid;grid-template-columns:30px 1fr;gap:11px;text-align:left;line-height:1.55;color:var(--ink);cursor:pointer;opacity:0;transform:translateY(15px);animation:optionIn .44s var(--ease) forwards;animation-delay:calc(55ms + var(--i)*45ms);transition:border-color .2s ease,background-color .2s ease,transform .24s var(--ease),opacity .25s ease,filter .25s ease,box-shadow .25s ease}.option .letter{width:27px;height:27px;border:1px solid #b9b2a5;border-radius:50%;display:grid;place-items:center;font-size:10px;transition:.2s ease}.option:hover{border-color:#9caf9f;transform:translateY(-2px);box-shadow:0 8px 20px #243c3020}.option.is-picked{border-color:var(--green);background:#eaf1eb;transform:translateY(-3px) scale(1.012);box-shadow:0 10px 24px #214c3c24}.option.is-picked .letter{background:var(--green);border-color:var(--green);color:#fff}.option.is-before{opacity:0;transform:translate(-18px,-5px) scale(.985);filter:blur(1px)}.option.is-after{opacity:0;transform:translate(18px,5px) scale(.985);filter:blur(1px)}.options.is-leaving .option.is-picked{transform:translateY(-6px) scale(1.018)}@keyframes optionIn{to{opacity:1;transform:translateY(0)}}.quiz>small{text-align:center}
.result{text-align:center;padding-bottom:55px}.portrait{width:184px;height:184px;margin:14px auto 10px;border-radius:50%;overflow:hidden;border:1px solid #cfc5b2;background:radial-gradient(circle at 50% 38%,#fff8e8,#ded1b8);box-shadow:0 14px 34px #3d31231c;display:grid;place-items:center}.portrait img{width:100%;height:100%;object-fit:cover}.portrait span{font-size:82px}.type{color:var(--gold);font-weight:700;font-size:12px}.result>h1{font-size:32px;line-height:1.34;margin:11px 0}.summary{color:#4d5752;line-height:1.8;margin:0 0 27px;font-size:14px}.ticket,.split section,.direction{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:20px;text-align:left;box-shadow:0 8px 28px #322d230d}.ticket h2,.split h2{font-size:17px;margin:0 0 18px}.axis{margin-top:17px}.axis>div:first-child{display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}.axis b{font-weight:400}.axis>div:last-child{height:5px;background:linear-gradient(90deg,var(--green),#ddd7ca,var(--gold));border-radius:6px;margin-top:8px;position:relative}.axis i{position:absolute;top:50%;width:15px;height:15px;background:var(--paper);border:3px solid var(--green);border-radius:50%;transform:translate(-50%,-50%)}.split{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.split section{padding:18px}.split p{color:#59615d;font-size:12px;line-height:1.55}.direction{margin-top:12px;background:var(--green);color:#fff;border-color:var(--green)}.direction small{color:#d9c489;letter-spacing:.12em}.direction h2{font-size:22px;margin:10px 0}.direction p{color:#e3ebe7;font-size:13px;line-height:1.75}.disclaimer{color:#858b87;font-size:10px;line-height:1.7;margin:20px 10px}.result .primary{margin-top:3px}
@media(max-width:380px){.page{padding-left:17px;padding-right:17px}.intro h1{font-size:42px}.quiz h2{font-size:25px}.split{grid-template-columns:1fr}.visitor{font-size:27px}}
@media(prefers-reduced-motion:reduce){.page,.option,.primary,.progress i{animation:none!important;transition:none!important}.option{opacity:1;transform:none}.visitor{animation:none}}
