@charset "UTF-8";
@font-face{font-family:Nightcap Serif;src:url('assets/nightcap-serif.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
:root{--paper:#f7f3e9;--ink:#2d4938;--muted:#68745f;--line:#b6bdab;--card-line:#dfd6c5;--stamp:#68745f;font-family:'Nightcap Serif','Songti SC',SimSun,serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,select,input{font:inherit;color:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid #92734e;outline-offset:4px}h1:focus{outline:none}button{touch-action:manipulation}h1,h2,h3,p{font-weight:400}button,select{border-radius:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.page{width:min(100%,1536px);min-height:100svh;margin:0 auto;padding:22px 50px 16px;display:flex;flex-direction:column}.masthead{display:grid;grid-template-columns:1fr auto;gap:32px;min-height:145px;align-items:start}.masthead-left{padding-top:14px;min-width:0}.wordmark{display:block;font-family:Georgia,'Nightcap Serif',serif;font-size:16px;font-weight:400;letter-spacing:7px;padding:7px 0 25px;border-bottom:1px solid #81917b}.progress-line{display:flex;align-items:center;gap:19px;padding-top:28px;font-size:18px;letter-spacing:3px}.progress-divider{width:24px;height:1px;background:#b8bfad}#journey{font-size:15px;letter-spacing:3px;color:var(--muted)}.bookstamp{width:352px;height:145px;border:1px solid #a9b29b;border-radius:50%;margin:0;padding:17px 27px 14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;color:var(--stamp)}.stamp-top,.stamp-bottom{font-size:13px;letter-spacing:4px;line-height:1.6}.stamp-options{display:flex;justify-content:center;align-items:center;gap:16px}.bookstamp select{font-size:23px;letter-spacing:2px;background:transparent;border:0;padding:4px 3px;min-height:44px;cursor:pointer;color:#56624d}.bookstamp select:disabled{opacity:.65}.bookstamp option{background:var(--paper);font-size:18px;color:var(--ink)}.stamp-divider{width:1px;height:23px;background:#c6cbbd}
main{flex:1;display:flex;flex-direction:column}.stage{flex:1;min-width:0}.stage-intro{text-align:center;margin:2px 0 26px}.category{display:flex;align-items:center;justify-content:center;gap:24px;font-size:17px;letter-spacing:4px;margin:0 0 12px;line-height:1.7}.category:before,.category:after{content:'';height:1px;width:28px;background:#96a18b}.stage-intro h1{font-size:clamp(28px,3.4vw,52px);letter-spacing:4px;line-height:1.5;margin:0}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;width:91%;margin:auto;perspective:1200px}.symbol-card{display:flex;flex-direction:column;align-items:center;min-width:0;height:clamp(285px,29.4vw,452px);padding:26px 16px 28px;background:#faf7ef;border:1px solid var(--card-line);border-radius:16px;box-shadow:0 4px 9px #5144270a;color:var(--ink);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.symbol-card.chosen{background:#eeefdf;border-color:#7f9076}.art-wrap{position:relative;display:grid;place-items:center;width:min(100%,280px);flex:1;min-height:0}.art-wrap:before{content:'';position:absolute;width:86%;aspect-ratio:1;border-radius:50%;background:#efe4d0}.symbol-card:nth-child(2) .art-wrap:before{background:#e6e8db}.symbol-card:nth-child(3) .art-wrap:before{background:#efe0d4}.art-wrap svg{position:relative;width:100%;max-height:100%;aspect-ratio:1;stroke-width:1.8;color:#5e644c}.symbol-card:nth-child(2) .art-wrap svg{color:#5e715c}.symbol-card:nth-child(3) .art-wrap svg{color:#88705c}.symbol-name{font-size:clamp(24px,2.7vw,41px);letter-spacing:6px;line-height:1.5;flex-shrink:0;margin:13px 0 7px}.symbol-note{font-size:clamp(13px,1.35vw,20px);line-height:1.7;letter-spacing:1px;text-align:center;min-height:1.7em}.actions{display:flex;align-items:center;justify-content:center;gap:38px;min-height:94px;padding:18px 0}.hint{font-size:18px;letter-spacing:2px;margin:0;line-height:1.7}.primary,.secondary{min-height:44px;padding:8px 27px;border:1px solid #60765f;border-radius:8px;background:transparent;letter-spacing:2px;font-size:18px;line-height:1.5}.primary{background:var(--ink);color:var(--paper)}.secondary:disabled{color:#a4ab99;border-color:#c6cbbb}.collection-section{display:grid;grid-template-columns:180px 1fr;align-items:start;gap:18px;margin:14px 0 0;min-height:77px}.collection-section h2{font-size:19px;letter-spacing:3px;margin:1px 0 0;line-height:1.8;white-space:nowrap}.collection{padding:0;margin:0;list-style:none;display:grid;grid-template-columns:repeat(var(--steps),minmax(0,1fr));position:relative;isolation:isolate}.collection:before{content:'';position:absolute;top:13px;left:-14px;right:0;height:1px;background:#9ba78f;z-index:-1}.step-content{display:flex;align-items:center;flex-direction:column;gap:8px;padding:0 2px;border:0;background:transparent;width:100%;min-height:60px;color:var(--ink)}.step-dot{display:grid;place-items:center;width:25px;height:25px;background:var(--paper);border:1px solid var(--ink);border-radius:50%;font-family:system-ui,sans-serif;font-size:15px}.collected .step-dot{color:var(--paper);background:var(--ink)}.current:not(.collected) .step-dot:after{content:'';width:9px;height:9px;border-radius:50%;background:var(--ink)}.step-label{font-size:17px;line-height:1.6;letter-spacing:1px;white-space:nowrap}.step-label>span{font-family:Georgia,serif}.page-footer{display:flex;justify-content:space-between;align-items:center;min-height:44px;margin-top:6px}.quiet{border:0;background:transparent;padding:8px 0;min-height:44px;letter-spacing:2px;font-size:17px}.atlas-link span{font-family:Arial,sans-serif;margin-left:9px}.host-link{font-size:12px;letter-spacing:1px;color:#68745f}
@media(hover:hover){.symbol-card:not(:disabled):hover{transform:translateY(-4px);border-color:#9ba98c;box-shadow:0 7px 20px #4d563214}.secondary:not(:disabled):hover,.quiet:hover{background:#e9ecdf}.step-content[data-edit]:hover .step-label{text-decoration:underline;text-underline-offset:5px}}
.turn-away .symbol-card{animation:leave-card .18s ease-in both}.turn-away .symbol-card.chosen{animation:choose-card .18s ease-in both}.turn-in{animation:enter-card .19s ease-out both}@keyframes leave-card{to{opacity:0;transform:rotateY(-12deg) translateY(6px)}}@keyframes choose-card{to{opacity:.2;transform:rotateY(-65deg)}}@keyframes enter-card{from{opacity:0;transform:rotateY(12deg) translateY(5px)}to{opacity:1;transform:none}}
.result{max-width:1050px;margin:auto}.result .stage-intro{margin-bottom:20px}.result-words{font-size:17px;letter-spacing:3px;color:var(--muted);margin:9px 0 0}.recipe-body{display:grid;grid-template-columns:1fr 1.5fr;gap:50px;align-items:center;max-width:850px;margin:auto}.drink-art{background:#e9e9dc;border-radius:50%;aspect-ratio:1;display:grid;place-items:center;color:var(--drink-color,#6e785a)}.drink-art svg{width:80%;height:80%}.recipe-list{list-style:none;margin:0;padding:0}.recipe-list li{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid #d7dccd;padding:9px 0;font-size:17px}.recipe-list b{font-weight:400;white-space:nowrap}.recipe-method{font-size:16px;line-height:1.9}.source-note,.recipe-detail{font-size:12px;line-height:1.9;color:#687461}.recipe-detail summary{cursor:pointer;min-height:30px}.recipe-detail a{text-decoration:underline}.empty-state{text-align:center;padding:60px 10px}.empty-state h1{font-size:32px}.empty-state p{line-height:1.8}.empty-state button{margin:20px 0}
dialog{width:min(700px,calc(100% - 36px));max-height:90svh;border:1px solid var(--card-line);border-radius:14px;background:var(--paper);color:var(--ink);padding:28px 32px;box-shadow:0 18px 80px #19312133}dialog::backdrop{background:#20342973;backdrop-filter:blur(4px)}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:20px}.eyebrow{font:10px Georgia,serif;letter-spacing:2px;color:var(--muted);margin:0 0 9px}.dialog-head h2{font-size:28px;letter-spacing:3px;margin:0}.close{border:0;background:transparent;font:30px Georgia,serif;width:44px;height:44px;flex-shrink:0}.dialog-intro{font-size:14px;line-height:1.9;margin:18px 0;color:var(--muted)}.dialog-tabs{display:flex;border-bottom:1px solid var(--line);gap:20px}.dialog-tabs button{border:0;background:none;min-height:44px;padding:8px 18px;color:var(--muted)}.dialog-tabs button.active{color:var(--ink);border-bottom:2px solid var(--ink)}.search-label{display:block;margin:18px 0 8px;font-size:12px}#hostSearch{width:100%;padding:12px;background:#fbf9f2;border:1px solid var(--line);border-radius:5px;font-size:14px}.inventory-tools{display:flex;gap:20px;padding:7px 0}.inventory-tools button{border:0;background:none;min-height:44px;padding:0 5px;font-size:12px}.host-row{display:flex;align-items:center;gap:14px;padding:13px 0;border-bottom:1px solid #d9ddcf;font-family:system-ui,sans-serif;font-size:14px;line-height:1.6}.host-row input{accent-color:var(--ink);width:19px;height:19px;flex-shrink:0}.row-copy{flex:1}.row-copy small{display:block;font-size:11px;color:var(--muted)}.state{font-size:11px;color:var(--muted)}.state.off{color:#9d654b}.dialog-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:24px;font-size:12px}.dialog-bottom .primary{font-size:14px;padding:10px 18px}.calibration-info{font:12px/1.9 system-ui,sans-serif;color:var(--muted);margin-top:24px}.calibration-info summary{cursor:pointer;min-height:36px}#hostContents{max-height:40svh;overflow:auto;padding-right:8px}.atlas-dialog{width:min(880px,calc(100% - 36px))}#atlasNav{display:flex;gap:7px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:15px}#atlasNav button{border:1px solid var(--line);border-radius:5px;min-height:44px;padding:7px 14px;font-size:14px;background:transparent}#atlasNav .active{background:var(--ink);border-color:var(--ink);color:var(--paper)}.atlas-caption{font-size:14px;line-height:1.8;margin:20px 0}.atlas-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.atlas-grid article{border:1px solid var(--card-line);border-radius:8px;text-align:center;padding:14px 10px}.atlas-grid svg{height:100px;width:100px;max-width:100%;color:#778267}.atlas-grid h3{font-size:21px;letter-spacing:2px;margin:4px 0 9px}.atlas-grid p{font-size:12px;line-height:1.8;color:var(--muted);margin:0}#toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%,10px);padding:12px 22px;max-width:90vw;width:max-content;background:#2d4938;color:#fffdf3;border-radius:8px;font:13px/1.7 system-ui,sans-serif;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:20}#toast.show{opacity:1;transform:translate(-50%,0)}
@media(min-width:1100px) and (max-height:980px){.page{padding-top:16px}.masthead{min-height:125px}.bookstamp{width:300px;height:118px;gap:3px;padding:12px}.bookstamp select{font-size:21px}.masthead-left{padding-top:8px}.progress-line{padding-top:20px}.stage-intro{margin-bottom:20px}.stage-intro h1{font-size:42px}.category{font-size:14px;margin-bottom:10px}.symbol-card{height:clamp(260px,calc(100svh - 480px),360px);padding:18px 15px 22px}.art-wrap{width:200px}.symbol-name{font-size:32px}.symbol-note{font-size:16px}.actions{min-height:76px}.collection-section{margin-top:0}.hint{font-size:16px}}
@media(max-width:1099px){.page{padding:18px 28px 12px}.masthead{min-height:126px;gap:20px}.wordmark{font-size:13px;letter-spacing:5px;padding-bottom:20px}.progress-line{font-size:15px;padding-top:22px;gap:13px}#journey{font-size:13px}.bookstamp{width:270px;height:112px;padding:10px;gap:3px}.stamp-top,.stamp-bottom{font-size:11px;letter-spacing:3px}.bookstamp select{font-size:20px}.stamp-options{gap:10px}.stage-intro{margin:8px 0 22px}.category{font-size:14px;margin-bottom:10px;letter-spacing:3px}.cards{width:100%;gap:16px}.symbol-card{padding:20px 12px;min-height:310px;height:34vw}.symbol-name{font-size:28px;letter-spacing:3px}.symbol-note{font-size:13px;letter-spacing:0}.art-wrap{width:200px}.actions{min-height:80px;gap:24px}.hint,.secondary,.primary{font-size:15px}.collection-section{grid-template-columns:140px 1fr;gap:8px;min-height:67px}.collection-section h2{font-size:15px;letter-spacing:2px}.step-label{font-size:13px;letter-spacing:0}.step-dot{width:22px;height:22px;font-size:13px}.collection:before{top:11px}.quiet{font-size:14px}.host-link{font-size:11px}.recipe-body{gap:28px}}
@media(max-width:600px){.page{padding:16px 18px 12px;min-height:100svh}.masthead{min-height:132px;gap:12px;position:relative}.masthead-left{padding-top:13px}.wordmark{border:0;font-size:11px;letter-spacing:4px;padding:0 0 20px}.progress-line{padding-top:17px;font-size:12px;letter-spacing:1px;gap:9px}.progress-divider{width:12px}#journey{font-size:11px;letter-spacing:1px}.bookstamp{width:205px;height:96px;gap:0;padding:10px 12px}.stamp-top,.stamp-bottom{font-size:10px;letter-spacing:2px}.stamp-options{gap:7px}.bookstamp select{font-size:16px;letter-spacing:1px;min-height:38px;padding:2px 0}.stamp-divider{height:17px}.stage-intro{margin:12px 0 25px}.category{font-size:12px;gap:12px;letter-spacing:2px;margin-bottom:13px}.category:before,.category:after{width:18px}.stage-intro h1{font-size:27px;letter-spacing:1px;line-height:1.7}.cards{gap:9px}.symbol-card{min-height:260px;height:auto;padding:15px 7px 18px;border-radius:10px}.art-wrap{width:108px;flex:0 0 112px;max-width:100%}.symbol-name{font-size:23px;letter-spacing:1px;margin:15px 0 10px;line-height:1.5}.symbol-note{font-size:12px;line-height:1.8;letter-spacing:0}.actions{min-height:100px;gap:15px;flex-wrap:wrap;padding:20px 0}.hint{font-size:13px;letter-spacing:1px}.secondary,.primary{font-size:13px;padding:8px 14px;letter-spacing:1px}.collection-section{display:block;margin:12px 0 16px;min-height:0}.collection-section h2{font-size:14px;margin:0 0 20px}.collection{grid-template-columns:repeat(4,minmax(0,1fr));row-gap:20px}.collection:before{display:none}.collection-step{position:relative}.collection-step:before{content:'';position:absolute;height:1px;top:11px;width:100%;left:0;background:#adb59e;z-index:-1}.step-content{gap:9px;min-height:54px}.step-label{font-size:12px}.page-footer{margin-top:16px}.quiet{font-size:13px}.host-link{font-size:10px}.recipe-body{grid-template-columns:1fr;gap:16px}.drink-art{width:145px;margin:auto}.recipe-list li{font-size:15px}.result .stage-intro{margin-top:0}.result-words{font-size:13px;letter-spacing:1px}.recipe-method{font-size:14px}.result .actions{min-height:80px}.empty-state{padding:30px 0}.empty-state h1{font-size:24px}dialog{padding:22px 20px}.dialog-head h2{font-size:24px}.atlas-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dialog-bottom{gap:12px}.dialog-bottom .primary{font-size:12px;padding:10px 12px}.atlas-caption{font-size:13px}}
@media(max-width:360px){.page{padding-left:12px;padding-right:12px}.bookstamp{width:190px}.wordmark{letter-spacing:2px}.symbol-name{font-size:20px}.symbol-note{font-size:11px}.stage-intro h1{font-size:24px}.actions{gap:10px}.hint{font-size:12px}}
@media(min-width:601px) and (max-height:520px){.page{padding:8px max(24px,env(safe-area-inset-left)) 4px;min-height:100svh}.masthead{min-height:62px;gap:24px}.masthead-left{padding-top:1px}.wordmark{font-size:10px;letter-spacing:4px;padding:4px 0 9px}.progress-line{font-size:12px;letter-spacing:2px;padding-top:10px;gap:13px}#journey{font-size:11px;letter-spacing:2px}.bookstamp{width:218px;height:62px;padding:2px 12px;gap:0}.stamp-top,.stamp-bottom{font-size:9px;line-height:1.4;letter-spacing:3px}.stamp-options{gap:10px}.bookstamp select{font-size:15px;letter-spacing:1px;min-height:32px;padding:1px 0}.stamp-divider{height:16px}.stage-intro{margin:-7px 0 8px}.category{font-size:10px;letter-spacing:2px;gap:16px;margin-bottom:1px;line-height:1.6}.category:before,.category:after{width:17px}.stage-intro h1{font-size:23px;letter-spacing:2px;line-height:1.4}.cards{gap:14px;width:90%}.symbol-card{height:155px;min-height:0;padding:6px 10px 10px;border-radius:9px}.art-wrap{width:94px;flex:1;min-height:0}.symbol-name{font-size:21px;line-height:1.35;letter-spacing:3px;margin:3px 0}.symbol-note{font-size:11px;line-height:1.5;letter-spacing:1px}.actions{padding:0;min-height:44px;gap:25px;flex-wrap:nowrap}.hint{font-size:12px;letter-spacing:1px}.secondary,.primary{font-size:12px;padding:5px 17px;min-height:35px;border-radius:6px;letter-spacing:1px}.collection-section{grid-template-columns:116px 1fr;gap:5px;margin:0;min-height:37px}.collection-section h2{font-size:12px;letter-spacing:1px;margin:0}.collection:before{top:8px}.step-dot{width:17px;height:17px;font-size:10px}.current:not(.collected) .step-dot:after{width:7px;height:7px}.step-content{gap:3px;min-height:35px}.step-label{font-size:11px;line-height:1.4;letter-spacing:1px}.page-footer{min-height:24px;margin:0}.quiet{font-size:11px;min-height:26px;padding:3px 0}.host-link{font-size:9px}.recipe-body{max-width:650px;grid-template-columns:150px 1fr;gap:30px}.recipe-list li{font-size:12px;padding:5px 0}.recipe-method{font-size:12px;margin:9px 0}.source-note,.recipe-detail{font-size:10px}.result .stage-intro{margin:0 0 12px}.result-words{font-size:11px;margin-top:4px}.result .actions{min-height:50px}.is-result .collection-section{margin-top:10px}.empty-state{padding:10px}.empty-state h1{font-size:24px}dialog{max-height:94svh}.atlas-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

@media(min-width:601px) and (max-width:1099px) and (min-height:521px) and (max-height:800px){.symbol-card{min-height:260px;height:min(31vw,300px)}}
@media(max-width:340px){.symbol-name{font-size:17px;letter-spacing:.5px}}
