@charset "UTF-8";
:root{--paper:#f7f5f0;--ink:#303a44;--muted:#858985;--line:#dfdfd5;--rose:#ae7c73;--blue:#485e71;--serif:'Yu Mincho','Hiragino Mincho ProN','Noto Serif JP',serif;--sans:-apple-system,BlinkMacSystemFont,'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px;-webkit-text-size-adjust:100%}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;transition:background .18s,transform .18s;border:0;color:inherit}button:disabled{opacity:.4;cursor:not-allowed}button:not(:disabled):active{transform:translateY(1px)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #a58869;outline-offset:4px}h1,h2,h3,p{margin:0}h1,h2{font-family:var(--serif);font-weight:500;letter-spacing:.07em}p{line-height:1.9}small{font-size:11px}a{color:inherit;text-decoration:none}.eyebrow{font-size:10px;letter-spacing:.19em;font-weight:600;color:var(--muted);display:block}.primary,.secondary{padding:15px 21px;min-height:48px;text-align:center;border-radius:3px;font-size:13px}.primary{color:#fff;background:var(--blue)}.primary:hover:not(:disabled){background:#344c60}.primary span{margin-left:30px}.secondary{border:1px solid var(--line);background:transparent}.secondary:hover:not(:disabled){background:#eeece6}.text-button{background:none;padding:12px 0;text-decoration:underline;text-underline-offset:5px;color:var(--muted);font-size:12px}.wide{width:100%}.button-row{display:flex;gap:10px;flex-wrap:wrap}.hint,.muted{font-size:12px;color:var(--muted);line-height:1.9}.title-screen{max-width:1440px;margin:auto;padding:28px 48px 0}.cover{height:min(64vw,590px);min-height:390px;position:relative;overflow:hidden;background:#ddd}.cover>img{width:100%;height:100%;object-fit:cover;object-position:50% 24%}.cover:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(244,241,231,.98),rgba(244,241,231,.88) 15%,rgba(244,241,231,.13) 57%,transparent);pointer-events:none}.cover-copy{position:absolute;left:5%;top:15%;z-index:1}.cover-copy .eyebrow{color:#7b837b;margin-bottom:30px}.cover h1{font-size:clamp(40px,4.8vw,72px);line-height:1.55;letter-spacing:.12em}.cover-copy p{font-size:13px;letter-spacing:.17em;margin-top:20px}.cover-note{position:absolute;right:22px;bottom:22px;font-size:9px;letter-spacing:.22em;color:#fff;text-shadow:0 1px 3px #555;z-index:1}.title-panel{padding:32px 5% 28px;display:flex;justify-content:space-between;gap:32px}.title-panel h2{font-size:24px;line-height:1.75;margin:12px 0}.title-panel p{font-size:12px;color:#737b7b}.start-buttons{width:270px;display:flex;flex-direction:column;gap:10px;align-self:center;flex-shrink:0}.start-buttons small{font-size:10px;color:var(--muted);line-height:1.8;text-align:center}.title-screen footer,.game-footer{display:flex;justify-content:space-between;color:var(--muted);font-size:9px;letter-spacing:.1em;border-top:1px solid var(--line);padding:18px 0}.game-layout{display:grid;grid-template-columns:245px minmax(0,1fr);max-width:1480px;margin:auto;min-height:100vh}.sidebar{padding:34px 26px 24px;border-right:1px solid var(--line);display:flex;flex-direction:column;background:#f0efe8;position:sticky;top:0;height:100vh;overflow:auto}.wordmark{font-family:var(--serif);font-size:21px;line-height:1.5;letter-spacing:.13em;display:block}.wordmark>span{margin-left:15px}.wordmark i{display:block;font-style:normal;font-family:var(--sans);font-size:7px;color:var(--muted);letter-spacing:.27em;margin:10px 0 0 16px}.player{display:flex;gap:12px;align-items:center;margin:34px 0 26px}.avatar{width:54px;flex-shrink:0}.player small{color:var(--muted);display:block;font-size:9px}.player strong{display:block;font-size:13px;margin:5px 0}.player span{font-size:9px;color:var(--muted)}nav{display:flex;flex-direction:column;gap:7px}.nav-item{display:flex;align-items:center;gap:18px;text-align:left;background:none;font-size:12px;padding:14px 10px;border-left:2px solid transparent}.nav-item small{font-size:8px;color:var(--muted)}.nav-item.active{background:#e5e6dd;border-color:var(--blue)}.abilities{margin-top:34px}.stats{margin:18px 0 20px}.stat{display:grid;grid-template-columns:70px 1fr 24px;gap:8px;align-items:center;font-size:10px;margin:13px 0}.stat>div{height:3px;background:#dcdfd4}.stat i{display:block;height:3px;background:#8a9b93}.stat b{font-size:10px;font-weight:500;text-align:right}.resources{display:flex;border-top:1px solid var(--line);padding-top:18px;gap:30px}.resources small{display:block;font-size:9px;color:var(--muted);margin-bottom:6px}.resources strong{font-size:16px;font-weight:500;font-variant-numeric:tabular-nums}.resources em{font-style:normal;font-size:9px;color:var(--muted)}.abilities>.hint{font-size:9px;margin-top:16px}.save-button{border:1px solid #cfd2c8;background:none;text-align:left;padding:13px 12px;display:flex;justify-content:space-between;margin-top:auto;font-size:11px}.device-note{font-size:9px;text-align:center;display:block;color:var(--muted);margin:10px 0 0}.game-main{padding:35px 46px 0;min-width:0}.day-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.date{display:flex;align-items:baseline;gap:16px;margin-top:6px}.date>b{font-size:38px;font-family:var(--serif);font-weight:400;letter-spacing:.04em}.date em{font-style:normal;color:#adb3ac;font-size:26px;margin:0 6px}.date>span{font-size:11px}.date>i{font-size:10px;font-style:normal;color:var(--muted)}.phase{text-align:right}.phase>span{display:block;font-family:var(--serif);font-size:23px}.phase small{color:var(--muted);letter-spacing:.12em;font-size:9px;display:block;margin-top:9px}.daily-scene{height:clamp(260px,29vw,400px);position:relative;overflow:hidden;border-radius:2px}.daily-scene>img{width:100%;height:100%;object-fit:cover;object-position:center 35%}.scene-gradient{position:absolute;inset:0;background:linear-gradient(0deg,rgba(28,42,48,.8),transparent 65%)}.daily-scene.night>img{filter:brightness(.65) saturate(.6)}.scene-text{position:absolute;bottom:26px;left:30px;right:30px;color:#fff}.scene-text>span{font-size:10px;letter-spacing:.15em;color:#eee8dd}.scene-text p{font-family:var(--serif);font-size:15px;line-height:1.9;margin-top:9px;max-width:610px;letter-spacing:.06em}.schedule{padding:29px 0 36px}.section-head{display:flex;justify-content:space-between;align-items:end;gap:10px;margin-bottom:20px}.section-head h2{font-size:24px;margin-top:9px}.section-head>small{font-size:9px;color:var(--muted)}.action-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.action-card{display:flex;align-items:center;gap:15px;min-height:97px;border:1px solid var(--line);background:#fcfbf8;text-align:left;padding:14px 17px;border-radius:3px}.action-card:hover:not(:disabled){background:#eeeee5;border-color:#b4beb4}.action-icon{font-family:var(--serif);font-size:21px;background:#eeeee6;color:#7a8b81;border-radius:50%;width:48px;height:48px;display:grid;place-items:center;flex-shrink:0}.action-card strong{font-size:12px;font-weight:500;display:block}.action-card small{display:block;font-size:9px;color:var(--muted);margin-top:6px;line-height:1.7}.action-card em{font-size:9px;font-style:normal;color:var(--rose);display:block;margin-top:3px}.arrow{font-size:14px;color:#87978d;margin-left:auto}.portrait{background-image:url('/haru-no-tsuzuki/assets/expressions.png');background-size:300% 300%;background-repeat:no-repeat;aspect-ratio:1;width:100%;background-color:#fff}.action-face{width:48px;flex-shrink:0;border-radius:50%;border:1px solid #e7e2d8}.game-footer{margin-top:10px}.page-heading{margin:30px 0 36px}.page-heading h1{font-size:34px;margin:15px 0}.page-heading p{font-size:12px;color:var(--muted)}.people-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding-bottom:40px}.person-card{background:#fcfbf7;border:1px solid var(--line);overflow:hidden}.person-card>.portrait{border-bottom:1px solid var(--line)}.person-card>div:not(.portrait){padding:21px 18px}.person-card small{font-size:9px;color:var(--muted)}.person-card h2{font-size:20px;margin-top:10px;letter-spacing:.04em}.person-card p{font-size:11px;margin:16px 0}.person-card .tag{font-family:var(--serif);font-size:12px;color:#8e766d}.person-card .relation{font-size:10px;display:inline-block;background:#e9ede5;padding:7px 9px;border-radius:2px}.person-card .hint{font-size:10px}.journal{padding-bottom:40px;min-height:65vh}.journal article{display:grid;grid-template-columns:70px 1fr;gap:20px;padding:23px 0;border-bottom:1px solid var(--line)}.journal time{font-family:var(--serif);font-size:19px}.journal time span{display:block;font-family:var(--sans);font-size:9px;color:var(--muted);margin-top:5px}.journal p{font-size:12px}.empty{text-align:center;padding:90px 15px;color:var(--muted)}.empty>span{font-size:36px}.empty h2{font-size:23px;margin:18px 0}.ending{text-align:center;padding:30px 0}.ending h1{font-size:38px;line-height:1.7;margin:22px 0}.ending>p{font-family:var(--serif);font-size:13px;color:#798078}.ending>img{width:100%;margin:30px 0 12px;border-radius:3px}.ending-relations{display:flex;justify-content:center;gap:24px;padding:22px 0 40px}.ending-relations strong{display:block;font-size:12px}.ending-relations span{display:block;font-size:10px;color:var(--muted);margin-top:8px}.ending h2{font-size:24px;margin-bottom:14px}.ending .button-row{justify-content:center;margin-top:22px}.dialogue-backdrop{position:fixed;inset:0;background:rgba(34,45,52,.65);backdrop-filter:blur(7px);z-index:30;display:flex;align-items:center;justify-content:center;padding:22px;overflow:auto}.dialogue{width:min(900px,100%);background:#faf8f2;border:1px solid #dedbcf;box-shadow:0 30px 90px #15253040;border-radius:5px;overflow:hidden;max-height:calc(100dvh - 44px);overflow-y:auto}.dialogue-top{display:flex;justify-content:space-between;padding:12px 26px;border-bottom:1px solid var(--line);align-items:center;font-size:10px;color:var(--muted)}.dialogue-top .text-button{padding:4px}.dialogue-art{display:flex;align-items:center;justify-content:center;height:245px;background:linear-gradient(110deg,#ecebdc,#f8f5ed);border-bottom:1px solid var(--line);overflow:hidden;gap:40px}.dialogue-art>.portrait{width:270px;mix-blend-mode:multiply;flex-shrink:0;align-self:flex-start}.dialogue-caption small{font-size:10px;color:var(--muted)}.dialogue-caption h2{font-size:29px;margin:15px 0}.dialogue-caption p{font-family:var(--serif);font-size:12px;color:#8e8676}.dialogue-body{padding:28px 40px 32px}.narrative{font-family:var(--serif);font-size:16px;line-height:2.05;margin:13px 0 24px;letter-spacing:.03em;min-height:66px}.choices{display:flex;flex-direction:column;gap:9px}.choice{display:flex;align-items:center;gap:18px;background:#fffdfa;border:1px solid var(--line);padding:16px 18px;text-align:left;font-size:12px;line-height:1.6}.choice:hover{background:#eceee3}.choice small{font-size:9px;color:var(--rose)}.choice>span{margin-left:auto;color:#8b9c90}.response-footer{display:flex;align-items:center;justify-content:space-between;margin-top:34px;gap:20px}.response-footer>span{font-size:10px;color:var(--muted)}.modal-backdrop{position:fixed;inset:0;z-index:50;background:#24313977;backdrop-filter:blur(5px);display:flex;justify-content:center;align-items:center;padding:24px;overflow:auto}.modal{background:#faf9f4;padding:34px;width:min(590px,100%);border-radius:6px;box-shadow:0 25px 90px #142e3540;max-height:calc(100dvh - 48px);overflow:auto}.modal-heading{display:flex;justify-content:space-between;gap:10px;align-items:start}.modal h2{font-size:24px;margin:10px 0 14px}.close{background:none;font-size:26px;line-height:1;padding:0 3px}.modal>.muted{margin-bottom:25px}.modal>p{margin:10px 0 22px;font-size:13px}.modal label{display:block;font-size:11px;color:var(--muted);margin:12px 0}input,select{display:block;background:#fffdfa;width:100%;padding:12px 13px;border:1px solid var(--line);color:var(--ink);border-radius:3px;margin-top:7px;font-size:16px}.create-profile{display:grid;grid-template-columns:150px 1fr;gap:26px;align-items:center}.avatar.large{width:150px}.allocation-heading{display:flex;justify-content:space-between;align-items:center;margin:25px 0 9px;gap:10px}.allocation-heading h3{font-size:13px;font-weight:500}.allocation-heading span{font-size:11px;color:var(--muted)}.allocations{display:grid;gap:10px;margin:18px 0 26px}.allocations>div{display:flex;align-items:center;gap:15px}.allocations>div>span{margin-right:auto;font-size:12px}.stepper{background:#ebece4;width:31px;height:31px;border-radius:50%}.allocations b{font-weight:500;font-size:13px;width:23px;text-align:center}.save-slots article{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--line);padding:20px 0}.save-slots small{display:block;color:var(--rose);font-size:10px}.save-slots strong{display:block;font-size:12px;font-weight:500;margin:8px 0}.save-slots span{font-size:9px;color:var(--muted)}.save-slots article>div:last-child{display:flex;gap:6px}.save-slots .secondary{padding:10px 12px;min-height:36px;font-size:11px}.backup{background:#eeeee7;padding:20px;margin:10px 0}.backup h3{font-size:13px;font-weight:500;margin-bottom:7px}.backup .button-row{margin-top:15px}.backup .secondary{font-size:11px;padding:12px 13px}#toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);background:#344c48ee;color:#fff;padding:14px 22px;max-width:90vw;width:max-content;z-index:90;font-size:12px;line-height:1.7;opacity:0;pointer-events:none;border-radius:4px;transition:.2s}#toast.show{opacity:1;transform:translate(-50%,0)}
@media(min-width:1300px){.game-main{padding:38px 58px 0}.sidebar{padding:38px 28px}.action-card{min-height:101px}}
@media(max-width:1000px){.game-layout{grid-template-columns:205px 1fr}.sidebar{padding:28px 20px}.game-main{padding:28px 26px 0}.stat{grid-template-columns:61px 1fr 22px;gap:5px}.people-grid{gap:12px;grid-template-columns:1fr}.person-card{display:grid;grid-template-columns:165px 1fr}.person-card>.portrait{border-bottom:0;align-self:center}.person-card p{margin:9px 0}.person-card>div:not(.portrait){padding:18px}.title-screen{padding:20px 25px 0}.action-grid{gap:9px}.action-card{padding:12px;gap:10px}.section-head>small{max-width:105px;line-height:1.7}.scene-text{left:22px;bottom:20px}}
@media(max-width:700px){.title-screen{padding:0}.cover{height:68vh;min-height:460px;max-height:660px}.cover>img{object-position:54% center}.cover:after{background:linear-gradient(0deg,#f7f5f0,rgba(247,245,240,.92) 12%,transparent 57%)}.cover-copy{left:8%;top:auto;bottom:8%}.cover-copy .eyebrow{margin-bottom:12px;font-size:9px}.cover h1{font-size:43px;line-height:1.55;text-shadow:0 0 30px #fff}.cover-copy p{font-size:11px;margin-top:14px}.cover-note{display:none}.title-panel{padding:10px 8% 30px;display:block}.title-panel h2{font-size:22px}.title-panel p{font-size:11px}.title-panel>.start-buttons{width:100%;margin-top:25px}.title-screen>footer{font-size:8px;padding:17px 8%;gap:15px}.title-screen>footer span{display:none}.game-layout{display:block}.sidebar{position:static;height:auto;padding:18px 20px 0;display:grid;grid-template-columns:1fr auto;border:0;border-bottom:1px solid var(--line);overflow:visible}.wordmark{font-size:14px;line-height:1.5}.wordmark br{display:none}.wordmark>span{margin-left:0}.wordmark i{font-size:6px;margin:5px 0}.player{margin:0;gap:8px}.player .avatar{width:36px}.player small{display:none}.player strong{font-size:11px}.player span{font-size:8px}.sidebar nav{grid-column:1/-1;flex-direction:row;justify-content:space-between;margin-top:15px;gap:0;order:4}.nav-item{border-left:0;border-bottom:2px solid transparent;padding:13px 7px;font-size:11px;gap:8px;justify-content:center;flex:1}.nav-item.active{background:none;border-color:var(--blue)}.nav-item small{font-size:7px}.abilities{grid-column:1/-1;margin:15px 0 0;display:grid;grid-template-columns:1fr auto;gap:15px;border-top:1px solid var(--line);padding-top:10px}.abilities>.eyebrow,.abilities>.hint{display:none}.stats{display:grid;grid-template-columns:repeat(5,1fr);margin:0;gap:10px}.stat{display:flex;flex-direction:column;gap:4px;margin:0;font-size:8px;align-items:flex-start}.stat>div{width:100%;height:2px;order:3}.stat i{height:2px}.stat b{font-size:12px}.resources{padding:0;border:0;gap:13px}.resources small{font-size:8px;margin-bottom:5px}.resources strong{font-size:12px}.resources em{display:none}.sidebar>.save-button,.sidebar>.device-note{display:none}.game-main{padding:22px 20px 0}.day-header{margin-bottom:18px}.date>b{font-size:30px}.date{gap:10px}.date>span{font-size:10px}.date>i{font-size:9px}.phase>span{font-size:20px}.daily-scene{height:280px}.daily-scene>img{object-position:center 32%}.scene-text{left:18px;right:18px;bottom:20px}.scene-text>span{font-size:9px}.scene-text p{font-size:13px;line-height:1.9}.schedule{padding:24px 0}.section-head h2{font-size:22px}.section-head>small{font-size:8px}.action-grid{grid-template-columns:1fr}.action-card{min-height:82px;padding:13px 17px;gap:16px}.action-card strong{font-size:13px}.action-card small{font-size:10px}.action-face,.action-icon{width:45px;height:45px}.game-footer{font-size:8px;padding-bottom:75px}.game-footer:after{content:''}.page-heading{margin:12px 0 28px}.page-heading h1{font-size:29px}.person-card{grid-template-columns:115px 1fr}.person-card h2{font-size:19px}.person-card p{font-size:10px}.person-card .tag{font-size:11px}.person-card>div:not(.portrait){padding:16px 12px}.person-card .hint{font-size:9px}.people-grid{gap:16px}.dialogue-backdrop{padding:12px}.dialogue{max-height:calc(100dvh - 24px)}.dialogue-top{padding:12px 18px}.dialogue-art{height:205px;gap:5px;justify-content:flex-start;padding-left:0}.dialogue-art>.portrait{width:200px;flex-shrink:0}.dialogue-caption{padding-right:15px}.dialogue-caption h2{font-size:19px;letter-spacing:.02em;line-height:1.8}.dialogue-caption small{font-size:8px}.dialogue-caption p{font-size:9px}.dialogue-body{padding:23px 20px}.narrative{font-size:14px;line-height:2;margin-bottom:21px}.choice{padding:13px 12px;font-size:11px;gap:10px;min-height:52px}.response-footer{flex-direction:column;align-items:stretch;gap:18px}.response-footer>span{text-align:center}.modal-backdrop{padding:12px}.modal{padding:25px 22px;max-height:calc(100dvh - 24px)}.modal h2{font-size:21px}.create-profile{grid-template-columns:100px 1fr;gap:18px}.avatar.large{width:100px}.modal>.muted{font-size:11px}.save-slots article{gap:8px}.save-slots strong{font-size:10px}.save-slots .secondary{padding:9px;font-size:10px}.backup{padding:17px}.backup .button-row{flex-direction:column}.ending{padding:15px 0}.ending h1{font-size:31px}.ending-relations{gap:12px}.ending-relations strong{font-size:10px}.ending-relations span{font-size:8px}.ending>p{font-size:12px}.journal article{grid-template-columns:52px 1fr;gap:15px}.journal p{font-size:11px}.journal time{font-size:17px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
[hidden]{display:none!important}
@media(max-width:700px){.sidebar>.save-button{display:flex;grid-column:1/-1;order:5;margin:12px 0;font-size:10px;padding:9px 12px;min-height:34px}.dialogue-caption{min-width:0}.dialogue-art>.portrait{width:min(52vw,200px)}}
/* Live portraits: breathing pose, eye-only blink layer and resting expression. */
.live-portrait{position:relative;aspect-ratio:1;width:100%;overflow:hidden;background:#fff;--mouth-x:55%;--mouth-y:60%;--eyes:polygon(36% 35%,78% 35%,78% 56%,36% 56%)}.live-shiori{--mouth-x:55%;--mouth-y:57%;--eyes:polygon(31% 35%,69% 35%,69% 53%,31% 53%)}.live-reina{--mouth-x:51%;--mouth-y:58%;--eyes:polygon(29% 33%,66% 33%,66% 56%,29% 56%)}.live-himari.mood-1{--mouth-x:51%}.live-himari.mood-2{--mouth-x:60%}.live-shiori.mood-1{--mouth-x:52%}.live-shiori.mood-2{--mouth-x:58%}.live-pose{position:absolute;inset:0;transform-origin:50% 95%;animation:gentle-breath 5.6s ease-in-out infinite;animation-delay:var(--idle-delay)}.sprite{position:absolute;inset:0;background-size:300% 300%;background-position:var(--sprite-x) var(--sprite-y);background-repeat:no-repeat}.live-base{background-image:url('/haru-no-tsuzuki/assets/expressions.png')}.live-blink{background-image:url('/haru-no-tsuzuki/assets/blink.png');clip-path:var(--eyes);opacity:0;animation:eyes-blink 5.9s steps(1,end) infinite;animation-delay:var(--idle-delay)}.live-rest-mouth{background-image:url('/haru-no-tsuzuki/assets/blink.png');clip-path:ellipse(11% 8% at var(--mouth-x) var(--mouth-y))}.dialogue-art>.live-portrait{width:270px;flex-shrink:0;align-self:flex-start;mix-blend-mode:multiply}.dialogue-art{position:relative}.dialogue-art:after{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 85% 25%,#fff8c555,transparent 50%);animation:spring-light 9s ease-in-out infinite}.dialogue-caption{z-index:1}.person-card>.live-portrait{border-bottom:1px solid var(--line)}.person-card>div.live-portrait{padding:0}.dialogue-body{animation:page-in .35s ease-out}.dialogue-tools{display:flex;gap:20px}.narrative{white-space:pre-line;cursor:pointer}.narrative .letter{opacity:0}.narrative .letter.visible,.narrative.revealed .letter{opacity:1}.title-tools{display:flex;justify-content:flex-end;margin:0 0 12px}.sound-launch{font-size:11px;padding:10px 14px;border:1px solid #cfd2c8;background:#f7f5f0;border-radius:3px}.sidebar>.sound-launch{margin-top:15px}.sound-sliders{margin:22px 0}.sound-sliders label{position:relative}.sound-sliders output{float:right;color:var(--blue)}input[type=range]{padding:0;accent-color:var(--blue);height:28px;cursor:pointer;border:0;background:none}.sound-check{display:flex!important;align-items:center;gap:10px}.sound-check input{width:17px;height:17px;margin:0;accent-color:var(--blue)}.motion-off .live-pose,.motion-off .live-blink,.motion-off .dialogue-art:after,.motion-off .dialogue-body{animation:none!important}.motion-off .live-blink{opacity:0}.motion-off .narrative .letter{opacity:1}.daily-scene>img{animation:scene-drift 20s ease-in-out infinite alternate;transform-origin:center center}.motion-off .daily-scene>img{animation:none}.motion-off .dialogue-body{animation:none}
@keyframes gentle-breath{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-.5%) scale(1.006,1.012)}}@keyframes eyes-blink{0%,93%,97%,100%{opacity:0}94%,96%{opacity:1}}@keyframes spring-light{0%,100%{opacity:.35}50%{opacity:.8}}@keyframes page-in{from{opacity:.1;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes scene-drift{from{transform:scale(1)}to{transform:scale(1.035)}}
@media(max-width:1000px){.person-card>.live-portrait{border:0;align-self:center}}
@media(max-width:700px){.title-tools{position:absolute;right:15px;top:14px;z-index:3}.title-tools .sound-launch{background:#faf8f0e8;font-size:10px}.sidebar>.sound-launch{grid-column:1/-1;order:6;margin:0 0 12px;font-size:10px;padding:9px;min-height:34px}.dialogue-art>.live-portrait{width:min(52vw,200px)}.dialogue-caption{padding-right:13px}.sound-sliders input{min-height:35px}}
@media(prefers-reduced-motion:reduce){.live-pose,.live-blink,.dialogue-art:after,.dialogue-body,.daily-scene>img{animation:none!important}.live-blink{opacity:0}.narrative .letter{opacity:1}}
/* Chapter one: place atlas, appointments and shared memories. */
.place-scene{background-image:url('/haru-no-tsuzuki/assets/places.png');background-size:200% 300%;background-repeat:no-repeat;background-color:#e5e4d8}.place-classroom{background-position:0 0}.place-track{background-position:100% 0}.place-library{background-position:0 50%}.place-sewing{background-position:100% 50%}.place-cafe{background-position:0 100%}.place-park{background-position:100% 100%}.daily-scene>.place-scene{position:absolute;inset:0;animation:scene-drift 20s ease-in-out infinite alternate}.daily-scene.night>.place-scene{filter:brightness(.52) saturate(.65)}.dialogue-art>.dialogue-setting{position:absolute;inset:0;opacity:.32}.dialogue-art>.live-portrait{z-index:1}.upcoming-strip{display:flex;gap:20px;align-items:center;margin-top:17px;padding:17px 0;border-bottom:1px solid var(--line)}.upcoming-strip>div{flex:1;min-width:0}.upcoming-strip small{display:block;font-size:8px;letter-spacing:.08em;color:var(--muted);margin-bottom:5px}.upcoming-strip span{font-size:11px;line-height:1.6;display:block}.upcoming-strip .is-today small{color:var(--rose)}.upcoming-strip .text-button{font-size:9px;flex-shrink:0}.promise-card{border-color:#a7b7a2;background:#edf1e6}.night-invite{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:23px 0 0}.night-invite p{font-family:var(--serif);font-size:15px}.night-invite button{font-size:11px}.story-hint{padding-top:12px;border-top:1px solid var(--line);font-size:10px!important;color:var(--blue)}.invitation-grid{display:grid;gap:12px}.invitation-grid article{display:grid;grid-template-columns:55px 1fr auto;align-items:center;gap:18px;padding:18px 20px;background:#fcfbf7;border:1px solid var(--line)}.invitation-grid h3{font-family:var(--serif);font-size:17px;font-weight:500;margin-bottom:5px}.invitation-grid p{font-size:11px;color:var(--muted)}.invitation-grid small{font-size:9px;color:var(--rose)}.calendar-heading{margin-top:38px}.calendar-heading h2{font-size:23px}.calendar-list{margin-bottom:35px}.calendar-item{display:grid;grid-template-columns:105px 1fr 35px;gap:20px;padding:21px 0;border-bottom:1px solid var(--line);align-items:center}.calendar-item time{font-family:var(--serif);font-size:16px}.calendar-item time small{font-family:var(--sans);font-size:9px;color:var(--muted);display:block;margin-top:6px}.calendar-item strong{font-size:12px;font-weight:500}.calendar-item p{font-size:10px;color:var(--muted);margin-top:6px}.calendar-item>span{font-size:10px;color:var(--rose)}.calendar-item.done>span{color:#7a937a}.calendar-item.missed{opacity:.7}.memory-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding-bottom:40px}.memory-card{display:grid;grid-template-columns:95px 1fr;align-items:start;background:#fcfbf7;border:1px solid var(--line);padding:20px;gap:16px}.memory-card>.portrait{border-radius:50%;border:1px solid var(--line)}.memory-card small{font-size:9px;color:var(--muted)}.memory-card h2{font-size:19px;margin:11px 0}.memory-card p{font-family:var(--serif);font-size:12px;white-space:pre-line;line-height:1.9}.choice>div{flex:1}.choice em{display:block;font-size:10px;font-style:normal;color:var(--rose);margin-top:6px}.choice:disabled{opacity:.57}.motion-off .daily-scene>.place-scene{animation:none}
@media(max-width:1000px){.memory-grid{grid-template-columns:1fr}.upcoming-strip{gap:14px}.upcoming-strip span{font-size:10px}}
@media(max-width:700px){.nav-item{font-size:10px;gap:3px;padding:13px 2px;white-space:nowrap}.nav-item small{display:none}.upcoming-strip{flex-wrap:wrap;gap:15px}.upcoming-strip>div{flex-basis:calc(50% - 15px)}.upcoming-strip .text-button{margin-left:auto}.invitation-grid article{grid-template-columns:43px 1fr auto;gap:12px;padding:15px 12px}.invitation-grid h3{font-size:15px}.invitation-grid p{font-size:10px}.invitation-grid .secondary{padding:10px;min-height:38px;font-size:10px}.calendar-item{grid-template-columns:80px 1fr 26px;gap:13px}.calendar-item time{font-size:14px}.calendar-item strong{font-size:11px}.calendar-item p{font-size:9px}.memory-card{grid-template-columns:65px 1fr;padding:18px;gap:15px}.memory-card h2{font-size:19px}.memory-card p{font-size:12px}.night-invite p{font-size:13px}}
@media(prefers-reduced-motion:reduce){.daily-scene>.place-scene{animation:none!important}}
.memory-grid>.empty{grid-column:1/-1}
/* Chapter two: summer, autumn and the days after confession. */
.place-fireworks,.place-seaside,.place-aquarium,.place-culture,.place-autumn,.place-rooftop{background-image:url('/haru-no-tsuzuki/assets/places-chapter2.png')}.place-fireworks{background-position:0 0}.place-seaside{background-position:100% 0}.place-aquarium{background-position:0 50%}.place-culture{background-position:100% 50%}.place-autumn{background-position:0 100%}.place-rooftop{background-position:100% 100%}.outfit-yukata .live-base{background-image:url('/haru-no-tsuzuki/assets/yukata.png')}.relationship-banner{display:flex;align-items:center;gap:20px;background:#eef1e9;border:1px solid #cbd5c4;padding:23px;margin-top:22px}.relationship-banner>span{writing-mode:vertical-rl;font-size:8px;letter-spacing:.17em;color:#7b9278}.relationship-banner>div{flex:1}.relationship-banner strong{font-family:var(--serif);font-size:18px;font-weight:500}.relationship-banner p,.relationship-banner>small{font-size:10px;line-height:1.8;color:var(--muted);margin-top:6px}.relationship-banner button{font-size:10px}.confession-panel{margin-top:35px;padding:25px;background:#f4efed;border:1px solid #e3d6d2}.confession-panel h2{font-size:24px;margin:10px 0}.confession-panel>p{font-size:12px;line-height:1.9;color:var(--muted)}.confession-row{display:grid;grid-template-columns:105px 1fr auto;align-items:center;gap:16px;border-top:1px solid #e3d6d2;padding:16px 0}.confession-row:first-of-type{margin-top:20px}.confession-row strong{font-size:13px;font-weight:500}.confession-row>span{font-size:11px;line-height:1.8;color:var(--muted)}.confession-row button{font-size:11px}.calendar-item.cancelled{opacity:.65}
@media(max-width:700px){.relationship-banner{flex-wrap:wrap;padding:18px;gap:13px}.relationship-banner strong{font-size:15px}.relationship-banner button,.relationship-banner>small{margin-left:auto}.confession-panel{padding:19px}.confession-panel h2{font-size:21px}.confession-row{grid-template-columns:1fr auto;gap:8px}.confession-row>span{grid-row:2;grid-column:1;min-width:0;font-size:10px}.confession-row button{grid-row:1/3;grid-column:2;padding:10px}.confession-panel>p{font-size:11px}}
/* Keep skin and clothing opaque against the detailed seasonal backgrounds. */
.dialogue-art>.live-portrait{mix-blend-mode:normal;-webkit-mask-image:linear-gradient(90deg,#000 82%,transparent);mask-image:linear-gradient(90deg,#000 82%,transparent)}
/* Chapter three: winter lights, shared holidays and a new school year. */
.place-wintercity,.place-shrine,.place-winterclass,.place-springcafe,.place-guidance,.place-springgate{background-image:url('/haru-no-tsuzuki/assets/places-chapter3.png')}.place-wintercity{background-position:0 0}.place-shrine{background-position:100% 0}.place-winterclass{background-position:0 50%}.place-springcafe{background-position:100% 50%}.place-guidance{background-position:0 100%}.place-springgate{background-position:100% 100%}.outfit-winter .live-base{background-image:url('/haru-no-tsuzuki/assets/winter.png')}.season-card{border-color:#c8b890;background:#f7f1e2}.season-card .action-icon{color:#947546;background:#ebe1c9}.career-summary{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:18px 0;border-bottom:1px solid var(--line)}.career-summary>span{font-size:12px;color:var(--blue)}.career-summary>p{flex:1;min-width:180px;font-size:10px;line-height:1.8;color:var(--muted)}.career-summary button{font-size:10px}.career-panel{padding:28px;background:#eef0ed;border:1px solid #cfd7d0;margin:0 0 32px}.career-panel h2{font-size:27px;margin:11px 0 22px}.career-panel>p{font-size:12px;line-height:1.9;color:var(--muted);margin:12px 0}.career-panel h3{font-size:15px;margin:25px 0 8px;font-weight:500}.career-current{display:flex;align-items:center;gap:20px;justify-content:space-between}.career-current strong{font-family:var(--serif);font-size:20px;font-weight:500}.career-current>span{font-size:10px;color:var(--muted);white-space:nowrap}.career-goals{display:flex;flex-wrap:wrap;gap:10px;margin-top:15px}.career-goals button{font-size:11px;padding:12px 17px}.ending-career{border-block:1px solid var(--line);padding:23px;margin:30px auto;max-width:500px}.ending-career small,.ending-career strong{display:block}.ending-career small{font-size:10px;color:var(--muted)}.ending-career strong{font-family:var(--serif);font-size:22px;font-weight:500;margin:12px 0}.ending-career p{font-size:12px;color:var(--muted);line-height:1.9}
@media(max-width:700px){.career-summary{gap:10px;padding:16px 0}.career-summary>span{font-size:11px}.career-summary>p{flex-basis:100%;font-size:10px}.career-summary button{margin-left:auto}.career-panel{padding:20px 17px}.career-panel h2{font-size:24px;margin-bottom:17px}.career-current strong{font-size:18px}.career-panel>p{font-size:11px}.career-goals button{flex:1 1 calc(50% - 10px);font-size:10px;min-height:43px;padding:10px}.ending-career{padding:20px 10px}}

/* Protagonist: the same illustrated visual-novel finish as the heroines. */
.avatar{position:relative;display:block;aspect-ratio:1;overflow:hidden;border-radius:12px;background:#fff;border:1px solid var(--line);isolation:isolate}.avatar-art{position:absolute;inset:0;background-image:url('/haru-no-tsuzuki/assets/protagonist.png');background-size:300% 300%;background-position:var(--avatar-x) var(--avatar-y);background-repeat:no-repeat;transform-origin:50% 95%;animation:gentle-breath 5.6s ease-in-out infinite}.avatar.large{border-radius:16px;box-shadow:0 9px 25px #4a3f3510}.player .avatar{border-radius:50%}.motion-off .avatar-art{animation:none!important}@media(prefers-reduced-motion:reduce){.avatar-art{animation:none!important}}

.portal-return{display:inline-block;color:var(--muted);font-size:11px;text-decoration:none;line-height:1.8}.portal-return:hover{text-decoration:underline}.title-tools{gap:18px;align-items:center}.title-tools>.portal-return{margin-right:auto}.sidebar>.portal-return{margin-top:17px}@media(max-width:700px){.title-tools{left:15px;justify-content:space-between}.title-tools>.portal-return{background:#faf8f0e8;padding:6px 9px;border-radius:3px;font-size:9px}.sidebar>.portal-return{grid-column:1/-1;order:7;margin:0 0 12px;text-align:center}}

/* Fourth chapter: spring rain, open campus and final club activities. */
.place-rainwalk,.place-campus,.place-studio,.place-meet,.place-summerlibrary,.place-summerstation{background-image:url('/haru-no-tsuzuki/assets/places-chapter4.png')}.place-rainwalk{background-position:0 0}.place-campus{background-position:100% 0}.place-studio{background-position:0 50%}.place-meet{background-position:100% 50%}.place-summerlibrary{background-position:0 100%}.place-summerstation{background-position:100% 100%}.career-experience{margin:18px 0 0;padding:15px 17px;background:#fafbf7;border-left:2px solid #9ba997}.career-experience small{font-size:9px;color:var(--muted)}.career-experience p{font-family:var(--serif);font-size:12px;line-height:1.9;margin-top:9px}@media(max-width:700px){.career-experience{padding:13px}.career-experience p{font-size:11px}}
