@charset "UTF-8";
:root{--paper:#f7f1e5;--cream:#fffcf5;--ink:#433a2f;--muted:#796d5b;--green:#52634f;--line:#d8ccb5;--caramel:#ac7845;--red:#9a5943;--serif:"Yu Mincho","Hiragino Mincho ProN","Noto Serif CJK JP",serif;--sans:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.85;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 150 150' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%2384765a' opacity='.065' filter='url(%23n)' d='M0 0h150v150H0z'/%3E%3C/svg%3E")}button,input,textarea{font:inherit}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:disabled{cursor:default;opacity:.55}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #ab7442;outline-offset:4px}a{color:inherit}button{border:0}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:500}h1{font-size:clamp(2.1rem,4vw,3.5rem);line-height:1.65;letter-spacing:.07em}h2{font-size:1.6rem;line-height:1.6}h3{font-size:1.16rem}small,.small{font-size:.875rem}.muted{color:var(--muted)}.eyebrow{font-size:.75rem;letter-spacing:.22em;color:var(--caramel);font-weight:600}.app-shell{max-width:1240px;margin:auto;padding:0 42px}.site-header{height:102px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:14px;text-decoration:none;font-family:var(--serif);font-size:1.1rem}.brand-mark{display:grid;place-items:center;width:46px;height:46px;border:1px solid #b8a487;border-radius:50%;font-size:1.7rem}.brand small{display:block;font:9px/1.5 var(--sans);letter-spacing:.18em;color:var(--muted);margin-top:2px}.icon-button{width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:transparent;font-size:1.15rem}.site-footer{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding:21px 0;color:var(--muted);font-size:.75rem;margin-top:34px}.site-footer>span:first-child{font-family:var(--serif);font-size:1rem;font-style:italic}.title-layout{display:grid;grid-template-columns:.88fr 1.12fr;align-items:center;min-height:710px;gap:42px;padding:36px 0}.title-copy{padding:10px 0 30px 15px}.title-copy .eyebrow{margin-bottom:20px}.title-copy h1 span{display:block}.title-copy .intro-copy{margin-top:24px;line-height:2.1;color:var(--muted)}.title-copy .primary{margin-top:30px;min-width:230px}.edition{display:flex;gap:12px;align-items:center;margin:23px 0;color:var(--muted);font-size:.875rem}.edition:before{content:"";height:1px;width:32px;background:var(--line)}.title-art{position:relative;aspect-ratio:2/3;max-height:700px;width:100%;overflow:hidden;border-radius:45% 45% 8px 8px;border:1px solid #c9b598;box-shadow:0 15px 36px #59472513}.scene-img{display:block;width:100%;height:100%;object-fit:fill}.title-art:after{content:"";position:absolute;inset:9px;border:1px solid #fff8e589;border-radius:inherit;pointer-events:none}.title-art .resident{position:absolute;width:32%;left:12%;top:47%;transform:rotate(-7deg);mix-blend-mode:multiply;animation:bob 5s ease-in-out infinite}.art-caption{position:absolute;bottom:25px;left:0;width:100%;text-align:center;font: .875rem var(--serif);letter-spacing:.18em;color:#523e27;background:#fff7e2cc;padding:10px}.primary,.secondary,.paper-button{min-height:48px;padding:12px 22px;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;gap:18px;text-decoration:none;font-size:1rem}.primary{background:var(--green);color:#fffaf0;border:1px solid var(--green);box-shadow:0 4px 0 #354531;font-weight:500}.primary:hover{background:#43583f}.secondary{background:transparent;border:1px solid #bca88a}.paper-button{background:var(--cream);border:1px solid var(--line);box-shadow:2px 3px 0 #e2d5bf;text-align:left;justify-content:space-between;width:100%}.text-button{padding:10px 4px;background:none;color:var(--green);text-decoration:underline;text-underline-offset:5px;min-height:44px}.button-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}.resident{display:block;aspect-ratio:1.125;background-image:url('assets/residents.png');background-size:400% 300%;background-position:0 0;flex-shrink:0;width:100px}.resident.shuga{background-position-y:50%}.resident.shizuku{background-position-y:100%}.resident.joy{background-position-x:33.3333%}.resident.worried{background-position-x:66.6667%}.resident.idea{background-position-x:100%}.welcome{padding:24px 0 18px;display:flex;justify-content:space-between;align-items:center;gap:18px}.welcome h1{font-size:1.6rem}.welcome .eyebrow{margin-bottom:4px}.mode-note{font-size:.75rem;color:var(--muted);margin-top:15px;max-width:390px}.game-layout{display:grid;grid-template-columns:1.04fr 1fr;gap:38px;align-items:start}.scene{position:relative;aspect-ratio:2/3;overflow:hidden;border-radius:46% 46% 8px 8px;border:1px solid #c3b298;background:#e9d7b5;isolation:isolate}.hotspot{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;background:none;min-width:60px;min-height:62px;padding:0;z-index:4}.hotspot .dot{display:grid;place-items:center;background:#fff9e9f5;border:1px solid #8e7953;width:34px;height:34px;border-radius:50%;box-shadow:0 0 0 6px #fffbe754;animation:glow 3s infinite;font-size:1.1rem}.hotspot .spot-label{font-size:.75rem;background:#fff9e9ee;padding:1px 8px;border-radius:2px;margin-top:6px;white-space:nowrap;color:#493b28}.hotspot.done .dot{background:var(--green);color:var(--cream);animation:none}.scene .resident{position:absolute;width:24%;left:25%;top:48%;mix-blend-mode:multiply;animation:bob 4s ease-in-out infinite;z-index:2}.scene .steam-lines{position:absolute;left:25%;top:29%;color:#fff9ee;font-size:3rem;opacity:.8;animation:steam 4s infinite;pointer-events:none}.scene-hint{position:absolute;left:0;right:0;top:11%;text-align:center;font:.875rem var(--serif);letter-spacing:.12em;color:#fffaf1;text-shadow:0 1px 6px #523717;background:#634c324d;padding:6px}.game-side{padding-top:9px}.chapter-meta{display:flex;justify-content:space-between;color:var(--caramel);font-size:.75rem;letter-spacing:.1em;border-bottom:1px solid var(--line);padding-bottom:11px;margin-bottom:17px}.chapter-title{font-size:1.7rem}.chapter-subtitle{font:.875rem var(--serif);color:var(--muted);margin:8px 0 25px}.speech{position:relative;background:var(--cream);padding:20px 22px;border:1px solid var(--line);box-shadow:3px 5px 0 #e8dec9; margin:18px 0}.speaker{display:flex;align-items:center;gap:10px;color:var(--green);font-size:.875rem;margin-bottom:12px}.speaker:before{content:"";width:18px;height:1px;background:var(--green)}.speech p{font-size:1rem;line-height:1.95}.evidence-heading{display:flex;align-items:center;justify-content:space-between;font-size:.875rem;margin:25px 0 10px}.evidence-list{list-style:none;margin:0;padding:0}.evidence-list li{border-top:1px dashed var(--line);padding:12px 4px;font-size:.875rem;display:flex;gap:12px;align-items:flex-start}.evidence-list li:before{content:"○";color:#a48d6c}.evidence-list li.found:before{content:"✓";color:var(--green)}.evidence-list li:last-child{border-bottom:1px dashed var(--line)}.action-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}.action-grid .primary{grid-column:1/-1}.hint-text{border-left:2px solid var(--caramel);padding-left:13px;margin:17px 0;font-size:.875rem}.notebook-nav{display:flex;gap:8px;margin:28px 0 0;border-bottom:1px solid var(--line);overflow-x:auto}.notebook-nav button{padding:12px 20px;white-space:nowrap;background:#ece2cd;border:1px solid var(--line);border-bottom:0;border-radius:5px 5px 0 0;font-size:.875rem}.notebook-nav button.active{background:var(--green);color:var(--cream);border-color:var(--green)}.book{max-width:950px;margin:28px auto;background:var(--cream);border:1px solid var(--line);padding:32px;box-shadow:5px 6px 0 #e2d5bf}.book-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:25px}.resident-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.resident-card{border:1px solid var(--line);background:var(--paper);padding:20px;text-align:center;position:relative}.resident-card .resident{width:100%;mix-blend-mode:multiply}.resident-card h3{margin:12px 0 5px}.resident-card p{font-size:.875rem;color:var(--muted);text-align:left}.resident-card .affinity{font-size:.75rem;color:var(--caramel);margin-top:13px}.lock{filter:grayscale(1);opacity:.6}.episode-list{display:grid;gap:15px}.episode-card{padding:22px;border:1px solid var(--line);position:relative}.episode-card .eyebrow{margin-bottom:6px}.episode-card p{font-size:.875rem;margin:12px 0;color:var(--muted)}.badge{color:var(--green);font-size:.75rem;border:1px solid #809073;border-radius:50%;width:62px;height:62px;display:grid;place-items:center;transform:rotate(-12deg);float:right}.memory{border-left:2px solid var(--line);padding:5px 0 25px 22px;margin-left:8px}.memory p{margin-top:9px;font-size:.875rem}.memory .eyebrow{letter-spacing:.05em}.empty{padding:30px;text-align:center;color:var(--muted)}dialog{width:min(540px,calc(100% - 28px));max-height:88dvh;overflow:auto;background:var(--paper);color:var(--ink);border:1px solid #bcaa8c;padding:30px;border-radius:8px;box-shadow:0 24px 80px #30231855}dialog::backdrop{background:#30291fd0;backdrop-filter:blur(3px)}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:15px;margin-bottom:16px}.modal-head h2{font-size:1.4rem}.modal-head .close{background:none;border:1px solid var(--line);border-radius:50%;width:38px;height:38px;flex-shrink:0;font-size:1.2rem}.modal-character{width:140px;margin:0 auto 12px;mix-blend-mode:multiply}.dialog-body p+p{margin-top:16px}.dialog-body .eyebrow{margin-bottom:8px}.dialog-body .primary{width:100%;margin-top:22px}.choices{display:grid;gap:12px;margin-top:23px}.field{display:block;margin:15px 0;font-size:.875rem}.field input,.field textarea{display:block;width:100%;border:1px solid #b5a78d;border-radius:4px;background:var(--cream);padding:12px;color:var(--ink);margin-top:6px}.field textarea{min-height:100px;resize:vertical}.setting-row{display:flex;gap:20px;justify-content:space-between;align-items:center;padding:18px 0;border-bottom:1px solid var(--line)}.setting-row input{width:22px;height:22px;accent-color:var(--green)}.setting-copy{font-size:.875rem;color:var(--muted);margin-top:20px}.danger{color:#974a36}.result{text-align:center}.stamp{border:3px double var(--red);color:var(--red);width:140px;height:140px;display:flex;flex-direction:column;justify-content:center;border-radius:50%;margin:14px auto 24px;transform:rotate(-13deg);font-family:var(--serif);animation:stamp .5s ease-out}.stamp strong{font-size:1.45rem}.stamp span{font-size:.8rem;letter-spacing:.1em}.save-status{font-size:.75rem;color:var(--muted);text-align:right;margin-top:16px}.loading{min-height:60vh;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:30px;text-align:center}.steam{font-size:2rem;color:var(--caramel);animation:steam 2s infinite}.busy{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);z-index:20;background:var(--cream);border:1px solid var(--line);box-shadow:0 4px 20px #0002;padding:12px 22px;border-radius:5px;width:max-content;max-width:90%;font-size:.875rem}.busy[hidden]{display:none}.busy .steam{margin-right:12px}#toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,30px);opacity:0;background:var(--ink);color:var(--cream);padding:12px 22px;border-radius:5px;z-index:30;max-width:90%;width:max-content;pointer-events:none;transition:.25s}#toast.show{opacity:1;transform:translate(-50%,0)}.error-panel{padding:45px 20px;max-width:600px;margin:auto}.error-panel p{margin-top:20px}.demo-ribbon{font-size:.75rem;color:var(--muted);padding:9px 0;text-align:center;border-bottom:1px dashed var(--line)}.chat-choices{display:flex;gap:6px}.chat-choices button{flex:1;padding:10px 4px;background:#e9dfcc;border:1px solid var(--line);font-size:.875rem}.chat-choices .selected{background:var(--green);color:var(--cream)}.chat-reply{padding:15px;background:var(--cream);border-left:2px solid var(--green);margin:15px 0}.hidden{display:none!important}@keyframes bob{0%,100%{translate:0 0}50%{translate:0 -5px}}@keyframes glow{50%{box-shadow:0 0 0 9px #fffbe721}}@keyframes steam{0%,100%{opacity:.35;translate:0 4px}50%{opacity:.9;translate:0 -5px}}@keyframes stamp{from{opacity:0;scale:1.5}to{opacity:1;scale:1}}.reduced *,.reduced *:before,.reduced *:after{animation:none!important;transition:none!important}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}@media(min-width:1100px){.game-layout{grid-template-columns:530px 1fr}}@media(max-width:760px){.app-shell{padding:0 20px}.site-header{height:78px}.brand-mark{width:40px;height:40px}.title-layout{display:flex;flex-direction:column-reverse;gap:0;padding:22px 0;min-height:0}.title-art{width:100%;max-width:480px;aspect-ratio:2/2.5;max-height:none}.title-art .scene-img{height:auto;position:absolute;top:-2%;width:100%}.title-art .resident{top:48%;left:14%;width:30%}.title-copy{position:relative;padding:25px 5px 0;text-align:center;width:100%}.title-copy h1{font-size:2rem;line-height:1.55}.title-copy .eyebrow{margin-bottom:14px}.title-copy .intro-copy{margin-top:17px;font-size:.875rem}.title-copy .primary{margin-top:22px;width:100%}.edition{justify-content:center;margin-bottom:10px}.mode-note{margin:16px auto 0}.art-caption{bottom:18px;font-size:.75rem}.game-layout{display:flex;flex-direction:column;gap:22px}.scene{width:100%;max-width:520px;margin:auto;aspect-ratio:2/3}.game-side{width:100%;padding:0}.welcome{padding:20px 0 16px;align-items:flex-start}.welcome h1{font-size:1.3rem}.welcome .small{font-size:.75rem}.chapter-title{font-size:1.5rem}.chapter-subtitle{margin-bottom:12px}.speech{padding:17px}.resident-grid{grid-template-columns:1fr}.resident-card{display:grid;grid-template-columns:110px 1fr;align-items:center;gap:14px;text-align:left;padding:12px}.resident-card .resident{grid-row:1/4}.resident-card h3{margin:0}.resident-card .affinity{margin:0}.book{padding:20px 16px;margin:20px 0}.book-title h2{font-size:1.3rem}.notebook-nav{margin-top:23px;gap:5px}.notebook-nav button{padding:10px 15px}.site-footer{margin-top:24px;font-size:.7rem;align-items:center}.site-footer>span:first-child{font-size:.875rem}.game-side .chapter-meta{margin-bottom:12px}.episode-card{padding:16px}dialog{padding:23px}.scene-hint{font-size:.8rem}.hotspot .spot-label{font-size:.75rem}.title-art .resident{mix-blend-mode:multiply}}
@keyframes blink{0%,94%,100%{background-position-x:0}95%,97%{background-position-x:33.3333%}}.scene .resident:not(.joy),.title-art .resident{animation:bob 5s ease-in-out infinite,blink 7s step-end infinite}
@media(max-width:760px){.title-art{aspect-ratio:2/1.65}.title-art .scene-img{top:-17%}.title-art .resident{top:39%;left:13%;width:30%}.title-copy h1{font-size:1.85rem}.title-copy .intro-copy{margin-top:12px}.title-copy .primary{margin-top:14px}.edition{margin:15px 0 8px}.title-copy .eyebrow{font-size:.65rem;letter-spacing:.15em;margin-bottom:10px}}
@media(prefers-reduced-motion:reduce){.scene .resident,.title-art .resident{animation:none!important}}
.title-art .resident,.scene .resident,.resident-card .resident,.modal-character{mix-blend-mode:normal}
.title-art .scene-img{object-fit:cover}
.hotspot[data-inspect="plate"] .spot-label{transform:translateX(-12px)}
