/* Hallmark · pre-emit critique: P4 H4 E4 S5 R5 V4
 * macrostructure: Narrative Workflow / ryokan daybook · theme: custom user-locked midnight
 * nav: N9 edge directory · footer: Ft5 statement · enrichment: genuine game room art
 * audience: Chinese players · use: game decision + route guide · tone: quiet tactile indie
 * axes: light paper / roman Chinese serif / warm gold; no generated game imagery
 */
@import url('tokens.css');
:root{--color-hero-top:rgb(18 18 18 / .04);--color-hero-bottom:rgb(18 18 18 / .95);--color-hero-mid:rgb(18 18 18 / .65);--color-rule-dark:#4b4138;--color-veil:rgb(245 240 232 / .05);--color-paper-shadow:rgb(18 18 18 / .32);--text-hero:clamp(2rem,4.3vw,3.5rem)}
*{box-sizing:border-box}html,body{margin:0;overflow-x:clip}html{scroll-behavior:smooth;scroll-padding-top:100px}body{background:var(--color-page);color:var(--color-ink);font-family:var(--font-body);font-size:16px;line-height:1.85}h1,h2,h3{font-family:var(--font-display);font-style:normal;line-height:1.3;overflow-wrap:anywhere;min-width:0;margin:0 0 1rem}h2{font-size:clamp(1.6rem,3vw,2.25rem)}h3{font-size:1.35rem}p{margin:0 0 1rem}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:5px}a:hover{color:var(--color-focus)}img{display:block;max-width:100%;height:auto}button,summary{font:inherit}button,a,summary{-webkit-tap-highlight-color:var(--color-clear)}button,summary{cursor:pointer}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--color-accent);outline-offset:4px}.skip{position:fixed;top:-100px;left:1rem;z-index:100;background:var(--color-paper);padding:1rem}.skip:focus{top:10px}.masthead{position:sticky;top:0;z-index:20;background:var(--color-dark);color:var(--color-on-dark);border-bottom:1px solid var(--color-rule-dark)}.nav-inner{max-width:1200px;margin:auto;padding:12px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{text-decoration:none;font-family:var(--font-display);display:flex;align-items:center;gap:12px;white-space:nowrap;font-size:1.05rem}.brand img{width:32px;height:32px;object-fit:cover}.nav-right{display:flex;gap:24px;align-items:center}.menu{position:relative}.menu summary{list-style:none;border-bottom:1px solid var(--color-accent);white-space:nowrap;padding:7px 8px;min-height:44px}.menu summary::-webkit-details-marker{display:none}.menu summary:after{content:' ＋'}.menu[open] summary:after{content:' −'}.menu nav{position:absolute;right:0;top:55px;min-width:230px;padding:12px;background:var(--color-dark);border:1px solid var(--color-rule-dark);box-shadow:6px 6px 0 var(--color-paper-shadow)}.menu nav a{display:block;white-space:nowrap;padding:9px 12px;text-decoration:none}.menu nav a:hover,.menu nav a[aria-current]{background:var(--color-page);color:var(--color-on-dark)}.nav-get{white-space:nowrap;text-decoration:none;color:var(--color-accent);font-size:.9rem}.hero{position:relative;min-height:740px;height:calc(100svh - 72px);max-height:960px;background:var(--color-dark);color:var(--color-on-dark);display:flex;align-items:flex-end}.hero-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,var(--color-hero-top) 12%,var(--color-hero-mid) 50%,var(--color-hero-bottom) 100%);pointer-events:none}.hero-inner{position:relative;z-index:1;max-width:1050px;width:100%;margin:0 auto;padding:80px 44px 76px;display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:48px;align-items:end}.game-logo{width:390px;max-width:100%;height:auto;margin:0 0 18px}.hero h1{font-size:var(--text-hero);letter-spacing:.04em}.original{display:block;font-family:var(--font-body);font-size:1rem;font-weight:400;letter-spacing:.08em;margin-top:12px;color:var(--color-dark-muted)}.eyebrow{font-family:var(--font-outlier);font-size:.75rem;letter-spacing:.16em;margin-bottom:16px}.hero-lead{font-size:1.05rem;max-width:35em;line-height:1.85}.actions{display:flex;flex-wrap:wrap;gap:16px;margin:24px 0}.button{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;min-height:48px;padding:11px 22px;text-decoration:none;border:1px solid var(--color-dark);border-radius:var(--radius-sm);background:var(--color-accent);color:var(--color-on-accent);box-shadow:4px 4px 0 var(--color-dark);font-weight:600;font-size:.95rem;transition:transform var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}.button:hover{background:var(--color-accent-hover);color:var(--color-on-accent)}.button:active{transform:translate(3px,3px);box-shadow:1px 1px 0 var(--color-dark)}.button.secondary{background:var(--color-paper);color:var(--color-ink)}.button[aria-disabled=true],button:disabled{opacity:.5;cursor:not-allowed;transform:none}.button[data-state=loading]{cursor:wait}.button[data-state=error]{border-color:var(--color-error)}.button[data-state=success]{border-color:var(--color-success)}.hero-note{font-size:.8rem;color:var(--color-dark-muted);line-height:1.65;margin:0}.stay-tag{border:1px solid var(--color-accent);padding:24px 18px;transform:rotate(2deg);text-align:center;background:var(--color-shade)}.stay-tag .big{font-family:var(--font-display);font-size:3.7rem;line-height:1.3}.stay-tag span{display:block;line-height:1.6;font-size:.8rem}.paper{max-width:1000px;margin:0 auto;background:var(--color-paper);box-shadow:12px 12px 0 var(--color-paper-shadow);padding-bottom:32px}.sheet{padding:56px 52px;border-bottom:1px solid var(--color-rule)}.info{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:24px 0 0;gap:0 24px}.info div{padding:14px 0;border-top:1px solid var(--color-rule)}dt{font-size:.78rem;color:var(--color-muted)}dd{margin:4px 0 0;line-height:1.65;font-weight:500}.note{font-size:.8rem;color:var(--color-muted)}.review-date{margin-top:22px}.prose{max-width:42em}.intro{font-family:var(--font-display);font-size:1.45rem;line-height:1.7;max-width:32em}.section-head{display:block;margin-bottom:28px}.section-head p{font-size:.82rem;color:var(--color-muted)}.cycle{list-style:none;padding:0;margin:30px 0 0}.cycle li{display:grid;grid-template-columns:80px minmax(0,1fr) minmax(0,.8fr);gap:24px;padding:28px 0;border-top:2px solid var(--color-ink);align-items:start}.period{font-size:2.25rem;font-family:var(--font-display);line-height:1.3}.period small{display:block;font: .72rem var(--font-outlier);margin-top:10px}.cycle figure{margin:0}.cycle figure img{aspect-ratio:16/9;object-fit:contain}.cycle p{font-size:.93rem}.cycle figcaption{font-size:.75rem;margin-top:10px;color:var(--color-muted)}figure{margin:0}.media-link{display:block}.media-link:hover img{filter:brightness(1.035)}figcaption{font-size:.8rem;color:var(--color-muted);margin-top:10px}.thumbs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:20px}.thumbs figcaption{font-size:.72rem}.linkline{display:flex;flex-wrap:wrap;gap:16px 30px;margin-top:24px;font-size:.9rem}.characters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px;margin-top:28px}.character{border-top:1px solid var(--color-rule);padding-top:18px}.character img{max-height:420px;width:100%;object-fit:contain;background:var(--color-paper-2)}.character h3{margin-top:18px;margin-bottom:8px}.character p{font-size:.93rem}.credits{color:var(--color-muted);font-size:.8rem}.notice{border-left:3px solid var(--color-focus);padding:8px 0 8px 20px;margin:24px 0}.get-game{background:var(--color-dark);color:var(--color-on-dark);padding:48px 52px}.get-game .note{color:var(--color-dark-muted)}.get-game .button{box-shadow:4px 4px 0 var(--color-rule-dark)}.closing{padding:56px 52px 24px}.faq{margin-top:24px}details.faq-item{border-top:1px solid var(--color-rule)}.faq-item summary{padding:18px 28px 18px 0;position:relative;list-style:none;line-height:1.6;font-weight:600}.faq-item summary:after{content:'＋';position:absolute;right:0}.faq-item[open] summary:after{content:'−'}.faq-item summary::-webkit-details-marker{display:none}.answer{padding:0 0 20px;max-width:43em}.answer p:last-child{margin-bottom:0}.page-head{background:var(--color-dark);color:var(--color-on-dark);padding:56px 24px}.page-head-inner{max-width:900px;margin:auto}.page-head h1{font-size:clamp(1.8rem,3.8vw,3rem);max-width:22em}.page-head p{max-width:43em;color:var(--color-dark-muted)}.crumb{display:flex;flex-wrap:wrap;gap:12px;font-size:.78rem;margin-bottom:24px}.crumb a{white-space:nowrap}.guide-toc{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;list-style:none;padding:0;margin:26px 0 0}.guide-toc li{padding:16px 0;border-top:2px solid var(--color-ink)}.guide-toc a{display:inline-block;white-space:nowrap;min-height:44px}.guide-toc p{font-size:.86rem;color:var(--color-muted);margin:4px 0 0}.steps{padding-left:22px}.steps li{padding:5px 0 10px 8px}.priority{display:flex;gap:12px;flex-wrap:wrap;padding:20px 0;list-style:none}.priority li{padding:8px 14px;border:1px solid var(--color-rule);font-size:.9rem}.spec{width:100%;border-collapse:collapse;margin-top:25px}.spec th,.spec td{text-align:left;padding:14px 0;border-top:1px solid var(--color-rule);font-weight:400}.spec th{width:40%;color:var(--color-muted);font-size:.9rem}.filter-bar{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:28px}.filter-bar[hidden]{display:none}.filter-bar button{background:var(--color-paper);border:1px solid var(--color-rule);padding:9px 18px;min-height:44px;white-space:nowrap;color:var(--color-ink)}.filter-bar button[aria-pressed=true]{background:var(--color-dark);color:var(--color-on-dark);border-color:var(--color-dark)}.filter-bar button:hover{border-color:var(--color-focus)}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px 18px}.gallery-grid figure[hidden]{display:none}.gallery-grid img{width:100%;aspect-ratio:16/9;object-fit:contain}.gallery-grid figure[data-category='角色'] img{aspect-ratio:8/9;background:var(--color-paper-2)}.gallery-count{font-size:.82rem;color:var(--color-muted)}.site-footer{background:var(--color-dark);color:var(--color-on-dark);padding:56px max(24px,calc((100vw - 896px)/2)) 40px}.footer-statement{font-family:var(--font-display);font-size:clamp(1.7rem,4vw,2.8rem);line-height:1.4;max-width:19em;margin-bottom:28px}.foot-logo{width:195px;margin:20px 0}.site-footer .note{color:var(--color-dark-muted)}.footer-links,.related{display:flex;flex-wrap:wrap;gap:8px 24px;margin:20px 0}.footer-links a,.related a{white-space:nowrap;font-size:.87rem;min-height:44px;display:inline-flex;align-items:center}.copyright{border-top:1px solid var(--color-rule-dark);padding-top:22px;margin-top:24px}.sticky-cta{display:none}dialog{background:var(--color-dark);color:var(--color-on-dark);border:1px solid var(--color-rule-dark);padding:20px;width:min(1160px,94vw);max-height:92svh}dialog::backdrop{background:var(--color-overlay)}.lightbox-top{display:flex;justify-content:space-between;align-items:center;gap:20px}.lightbox-top p{margin:0;font-size:.8rem;color:var(--color-dark-muted)}.viewer{display:flex;align-items:center;justify-content:center;min-height:120px;margin:16px 0}.viewer img{max-height:65svh;object-fit:contain}.lightbox-controls{display:flex;align-items:center;justify-content:space-between;gap:12px}.lightbox-controls button,.lightbox-top button{background:var(--color-paper);color:var(--color-ink);padding:8px 16px;min-height:44px;border:1px solid var(--color-rule);white-space:nowrap}.lightbox-controls p{margin:0;font-size:.82rem;max-width:40em}.media-status{font-size:.85rem;margin-top:14px}.media-status:empty{display:none}dialog[data-state=error] .media-status{color:var(--color-accent)}dialog[data-state=loading] .viewer{opacity:.5}dialog[data-state=success] .viewer{opacity:1}code{font-family:var(--font-outlier);background:var(--color-paper-2);padding:2px 5px}section[id]{scroll-margin-top:100px}
@media(max-width:960px){.hero-inner{padding-inline:32px;grid-template-columns:minmax(0,1fr)}.stay-tag{display:none}.sheet,.get-game,.closing{padding:40px 32px}.cycle li{grid-template-columns:60px minmax(0,1fr);gap:20px}.cycle figure{grid-column:2}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.info{grid-template-columns:repeat(2,minmax(0,1fr))}.paper{max-width:calc(100% - 36px)}}
@media(max-width:640px){body{padding-bottom:78px}.nav-inner{padding:10px 16px;gap:8px}.brand{font-size:.88rem;gap:8px}.brand img{width:28px;height:28px}.nav-right{gap:10px}.nav-get{display:none}.hero{height:auto;min-height:690px;max-height:none}.hero-art{object-position:52% top}.hero-inner{padding:190px 24px 42px}.game-logo{width:min(280px,100%)}.hero h1{font-size:2rem;letter-spacing:0}.hero-lead{font-size:.94rem}.hero-note{font-size:.75rem}.original{font-size:.85rem}.actions{gap:12px}.button{font-size:.86rem;padding:11px 16px;min-height:48px}.paper{max-width:calc(100% - 24px);box-shadow:6px 6px 0 var(--color-paper-shadow)}.sheet,.get-game,.closing{padding:32px 22px}.section-head{display:block;margin-bottom:22px}.section-head p{margin-top:8px}.info{gap:0 16px;font-size:.9rem}.info div{padding:12px 0}.intro{font-size:1.25rem}.cycle li{grid-template-columns:44px minmax(0,1fr);gap:16px}.period{font-size:1.8rem}.period small{font-size:.6rem}.cycle h3{font-size:1.25rem}.thumbs{grid-template-columns:repeat(2,minmax(0,1fr))}.characters{grid-template-columns:minmax(0,1fr);gap:24px}.character img{max-height:380px}.guide-toc{grid-template-columns:minmax(0,1fr)}.page-head{padding:32px 24px}.page-head h1{font-size:1.9rem}.gallery-grid{grid-template-columns:minmax(0,1fr)}.site-footer{padding:36px 24px}.sticky-cta{display:flex;align-items:center;justify-content:space-between;gap:12px;position:fixed;bottom:0;left:0;right:0;background:var(--color-dark);color:var(--color-on-dark);padding:10px 16px calc(10px + env(safe-area-inset-bottom));z-index:25;border-top:1px solid var(--color-rule-dark)}.sticky-cta span{font-size:.75rem;line-height:1.5}.sticky-cta small{display:block;color:var(--color-dark-muted)}.sticky-cta .button{font-size:.82rem;padding:9px 14px}.lightbox-controls{flex-wrap:wrap}.lightbox-controls p{order:3;width:100%}.viewer img{max-height:58svh}.lightbox-top p{font-size:.7rem}.priority{gap:8px}.priority li{font-size:.85rem}html{scroll-padding-top:88px}section[id]{scroll-margin-top:88px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

.actions,.footer-links,.related{align-items:center}.button{line-height:1.3}.filter-bar button:active,.lightbox-controls button:active,.lightbox-top button:active{transform:translateY(1px)}.lightbox-controls button:hover,.lightbox-top button:hover{background:var(--color-paper-2)}.menu summary:active{background:var(--color-page)}a:not(.button):active{text-decoration-thickness:2px}
a:focus-visible,button:focus-visible,summary:focus-visible{outline-color:var(--color-focus)}.hero a:focus-visible,.masthead a:focus-visible,.masthead summary:focus-visible,.site-footer a:focus-visible,.get-game a:focus-visible,.sticky-cta a:focus-visible,dialog button:focus-visible{outline-color:var(--color-accent)}.hero a:not(.button):hover,.masthead a:hover,.site-footer a:hover,.get-game a:not(.button):hover{color:var(--color-accent-hover)}
