@font-face{font-family:Literata;src:url('./fonts/literata-latin-400-normal.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Literata;src:url('./fonts/literata-latin-600-normal.woff2') format('woff2');font-style:normal;font-weight:600;font-display:swap}
@font-face{font-family:Literata;src:url('./fonts/literata-latin-700-normal.woff2') format('woff2');font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:'Atkinson Hyperlegible';src:url('./fonts/atkinson-hyperlegible-latin-400-normal.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:'Atkinson Hyperlegible';src:url('./fonts/atkinson-hyperlegible-latin-700-normal.woff2') format('woff2');font-style:normal;font-weight:700;font-display:swap}
:root{--navy:#1F3A5F;--ink:#182C40;--blue:#7897B8;--light:#DCE6F0;--sand:#ECE2CC;--grey:#6B6A66;--white:#FFFFFF;--alert:#B3483D;--border:rgba(120,151,184,.46);--body-size:18px;--ui:'Atkinson Hyperlegible',sans-serif;--serif:Literata,Georgia,serif;color:var(--ink);background:var(--white);font-family:var(--serif);font-size:var(--body-size);line-height:1.45;color-scheme:light;-webkit-text-size-adjust:100%;text-size-adjust:100%}
:root[data-text-size="1"]{--body-size:20px}
:root[data-text-size="2"]{--body-size:22px}
*{box-sizing:border-box}
body{margin:0;background:var(--white);min-width:280px}
button,input,select,textarea{font:inherit;color:inherit}
button,a,input,summary,textarea,select{-webkit-tap-highlight-color:rgba(31,58,95,.1)}
button,a,summary{touch-action:manipulation}
a{color:var(--navy);text-underline-offset:4px;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
button{cursor:pointer}
button:disabled{cursor:default}
:focus-visible{outline:3px solid var(--navy);outline-offset:4px}
h1:focus,main:focus{outline:none}
h1:focus-visible{outline:3px solid var(--navy);outline-offset:6px}
h1,h2,p,figure{margin:0}
h1,h2{font-family:var(--serif);color:var(--navy);font-weight:600;overflow-wrap:anywhere;hyphens:auto}
h1{font-size:1.83rem;line-height:1.18;letter-spacing:-.035em}
h2{font-size:1.2rem;line-height:1.3;letter-spacing:-.018em}
p+p{margin-top:1rem}
[hidden]{display:none!important}
.ui,label,button,select,input,textarea,summary,.button,.back-link,.footer-links,.text-size-options{font-family:var(--ui)}
.app-shell{width:100%;max-width:688px;margin:0 auto;padding:0 24px calc(116px + env(safe-area-inset-bottom))}
.site-header{min-height:92px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--border);padding:16px 0;margin-bottom:32px}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--navy);font:700 .84rem/1.2 var(--ui);min-height:48px;max-width:270px}
.brand-mark{flex-shrink:0}
.size-shortcut{min-height:48px;min-width:48px;display:flex;justify-content:center;align-items:center;font:700 1.05rem var(--ui);text-decoration:none;border:1px solid var(--border);border-radius:14px;flex-shrink:0}
.size-shortcut span{font-size:.75em;align-self:center;margin-bottom:.35em}
.page-heading{margin:0 0 28px}
.page-heading .intro{margin-top:18px}
.intro{font-size:1rem;line-height:1.5}
.start-hero{padding:4px 0 30px}
.start-hero h1{max-width:440px;font-size:2.15rem}
.start-hero .page-heading{margin-bottom:24px}
.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:52px;padding:12px 19px;border:1px solid transparent;border-radius:12px;font-size:1rem;line-height:1.25;text-align:center;text-decoration:none;font-weight:700;white-space:normal;transition:background-color 140ms,border-color 140ms;overflow-wrap:anywhere}
.button.primary{background:var(--navy);color:var(--white);border-color:var(--navy)}
.button.primary:hover{background:var(--ink)}
.button.secondary{background:var(--white);color:var(--navy);border-color:var(--blue)}
.button.secondary:hover{background:var(--light)}
.button.quiet{color:var(--navy);background:transparent;text-decoration:underline;text-underline-offset:4px;font-weight:400}
.button.quiet:hover{background:rgba(220,230,240,.38)}
.button:disabled{border-color:var(--border);background:var(--white);color:var(--grey);font-weight:400;text-decoration:none}
.full{width:100%}
.arrow{font-family:var(--ui);font-size:1.25rem;flex-shrink:0;margin-left:auto;padding-left:4px}
.situation-list{border:1px solid var(--border);border-radius:16px;overflow:hidden}
.situation-row{display:flex;align-items:center;gap:15px;min-height:76px;padding:17px 18px;text-decoration:none;font-family:var(--ui);font-size:1rem;line-height:1.3;color:var(--ink)}
.situation-row+.situation-row{border-top:1px solid var(--border)}
.situation-row:hover{background:rgba(220,230,240,.35);text-decoration:none}
.situation-row:focus-visible{outline-offset:-5px;border-radius:8px}
.row-number{font-size:.72rem;letter-spacing:.04em;color:var(--grey);font-variant-numeric:tabular-nums;min-width:22px}
.situation-row.heart-row{border:1px solid var(--alert);border-radius:0 0 15px 15px;margin:0 -1px -1px;position:relative}
.situation-row.heart-row:focus-visible{outline-offset:-5px}
.page-footer{padding-top:30px;margin-top:4px}
.page-footer p,.footnote{font-size:.88rem;line-height:1.55}
.page-footer p{color:var(--grey)}
.footer-links{display:flex;gap:14px 28px;flex-wrap:wrap;margin-top:14px}
.footer-links a{display:inline-flex;align-items:center;min-height:48px}
.back-link{min-height:48px;display:inline-flex;align-items:center;gap:9px;margin:-12px 0 18px;font-size:.9rem}
.card{border:1px solid var(--border);border-radius:16px;background:var(--white);padding:24px;margin:0 0 20px;min-width:0}
.card h2{margin-bottom:16px}
.card p:last-child{margin-bottom:0}
.metadata{font-size:.86rem;line-height:1.45}
.metadata span{display:block}
.recommendation{padding-top:20px}
.recommendation .button{margin-top:16px}
.situation-card:first-of-type{border-top:4px solid var(--navy);padding-top:21px}
.book-note{padding:20px 22px;border-left:3px solid var(--sand);margin:28px 0;font-size:.91rem}
.footnote{margin:28px 0 0}
.exercise-meta{font-size:.86rem;line-height:1.5;padding:18px 20px;border-radius:14px;background:rgba(220,230,240,.4);margin:-4px 0 32px}
.exercise-meta p+p{margin-top:9px}
.evidence{font-weight:700}
.exercise-section{margin:0 0 32px}
.exercise-section h2{padding-top:2px;margin-bottom:17px}
.exercise-section p{white-space:pre-line;overflow-wrap:anywhere}
.exercise-section+.exercise-section{padding-top:27px;border-top:1px solid var(--border)}
.exercise-section.variant-section{background:rgba(236,226,204,.46);border:1px solid var(--sand);border-radius:16px;padding:24px}
.steps{padding:0 0 0 1.65rem;margin:0}
.steps li{padding-left:8px;margin:0 0 20px}
.steps li::marker{font-family:var(--ui);font-weight:700;color:var(--navy)}
.exercise-illustration{margin:24px 0 0;border:1px solid var(--border);border-radius:12px;overflow:hidden;background:var(--white)}
.exercise-illustration img{display:block;width:100%;height:auto}
.exercise-actions{display:grid;gap:14px;margin-top:32px}
.exercise-actions .form-error{margin:0}
.set-status{font-weight:700;text-align:center;margin-bottom:10px}
.card-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:22px}
.card-actions .button.primary{flex:1 1 auto}
.set-situation{margin:18px 0 24px;font-size:.92rem}
.field-caption{display:block;font-family:var(--ui);font-size:.75rem;line-height:1.3;margin-bottom:6px}
label{display:block;font-size:.94rem;line-height:1.35;font-weight:700;margin:0 0 9px}
input[type="text"],input[type="number"],textarea,select{display:block;width:100%;min-height:52px;border:1px solid var(--blue);border-radius:10px;padding:12px;background:var(--white);font-size:1rem;line-height:1.4;box-shadow:none}
textarea{resize:vertical;min-height:90px}
select{padding-right:32px}
input,textarea,select{scroll-margin-block:110px}
input:focus,textarea:focus,select:focus{border-color:var(--navy)}
input[aria-invalid="true"]{border:2px solid var(--navy)}
.plan-form>input,.plan-form>textarea,#diary-form>input,#diary-form>textarea,#diary-form>select{margin-bottom:23px}
.empty-state{padding:28px 24px;background:rgba(220,230,240,.23)}
.empty-note{margin-bottom:24px}
fieldset.card{padding-top:22px}
fieldset legend{font-family:var(--serif);font-size:1.12rem;font-weight:600;line-height:1.4;float:left;width:100%;padding:0;margin-bottom:22px;color:var(--navy)}
fieldset legend+*{clear:both}
.scale-head{display:flex;justify-content:center}
input.scale-number{width:98px;text-align:center;font:700 2.1rem/1.2 var(--ui);padding:7px;min-height:64px;font-variant-numeric:tabular-nums}
.scale-range{width:100%;height:48px;margin:16px 0 0;accent-color:var(--navy);cursor:pointer}
.scale-labels{display:flex;justify-content:space-between;gap:24px;font:.78rem/1.4 var(--ui)}
.scale-labels span:last-child{max-width:55%;text-align:right}
.radio-pair{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.radio-pair label{display:flex;position:relative;margin:0;min-width:0}
.radio-pair input{position:absolute;left:15px;top:50%;transform:translateY(-50%);width:20px;height:20px;margin:0;accent-color:var(--navy)}
.radio-pair span{display:flex;align-items:center;justify-content:center;width:100%;min-height:54px;padding:12px 12px 12px 34px;border:1px solid var(--blue);border-radius:10px;background:var(--white);font-weight:400;cursor:pointer}
.radio-pair input:checked+span{background:var(--light);border:2px solid var(--navy);padding:11px 11px 11px 33px;font-weight:700}
.radio-pair input:focus-visible{outline:0}
.radio-pair input:focus-visible+span{outline:3px solid var(--navy);outline-offset:4px}
.result-card{background:rgba(220,230,240,.35);margin-top:28px}
.result-card p{margin:0 0 20px}
.form-error{font:400 .92rem/1.45 var(--ui);margin:12px 0 20px;padding:12px 14px;border-left:3px solid var(--navy);background:var(--light)}
.scale-help{margin-bottom:24px;border-bottom:1px solid var(--border);padding-bottom:12px}
summary{min-height:48px;cursor:pointer;padding:12px 0;font-weight:700}
.scale-help p{padding:6px 0 14px;font-size:.92rem}
.diary-scales{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:0 0 24px}
.diary-scales input{font-size:1.4rem;font-weight:700;font-variant-numeric:tabular-nums}
.diary-scales label{font-size:.86rem}
.diary-list{margin-top:32px}
.diary-row time{display:block;font-size:.8rem;color:var(--ink);margin:0 0 12px}
.diary-row h2{font-size:1.1rem;margin-bottom:20px}
.diary-row h2 a{display:flex;align-items:center;min-height:48px;text-decoration:none}
.diary-row h2 a:hover{text-decoration:underline}
.diary-values{display:flex;align-items:center;justify-content:space-between;gap:18px;font-size:1.8rem;font-weight:700;font-variant-numeric:tabular-nums;margin-bottom:22px}
.diary-values>span:not(.value-arrow){flex:1}
.diary-values .field-caption{font-weight:400}
.value-arrow{font-size:1.2rem;padding-top:22px}
.diary-row>p:not(.diary-values){font-size:.92rem}
.diary-actions{display:grid;gap:12px}
.timer-panel{margin:0;padding:22px}
.timer-display{display:block;font:700 3.5rem/1.25 var(--ui);text-align:center;color:var(--navy);font-variant-numeric:tabular-nums;letter-spacing:-.04em;margin-bottom:20px}
.timer-controls{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.timer-controls .button{padding:12px 7px;font-size:.91rem}
.sound-toggle{display:flex;align-items:center;min-height:48px;gap:13px;font-weight:400;margin:16px 0 0}
.sound-toggle input{width:23px;height:23px;flex-shrink:0;accent-color:var(--navy)}
.timer-finished{margin-top:22px;padding-top:20px;border-top:1px solid var(--border)}
.timer-finished p{margin-bottom:16px}
.advice-copy p,.info-copy p{margin-bottom:24px}
.advice-first{border-left:4px solid var(--sand);padding:20px 22px;background:rgba(236,226,204,.3);border-radius:0 14px 14px 0;font-weight:600}
.book-reference{margin-top:28px;padding-top:22px;border-top:1px solid var(--border);font-size:.91rem}
.book-reference a{display:inline-flex;align-items:center;min-height:48px}
.text-settings{margin-top:32px}
.text-size-options{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.text-size-options [aria-pressed="true"]{background:var(--navy);border-color:var(--navy);color:var(--white)}
.demo-banner{display:table;padding:8px 14px;border-radius:8px;background:var(--sand);color:var(--ink);font:700 .8rem var(--ui);margin:-12px 0 26px}
.storage-warning{padding:18px;border:1px solid var(--blue);background:var(--light);font:.88rem/1.5 var(--ui);border-radius:12px;margin:0 0 24px}
.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:5;border-top:1px solid var(--border);background:var(--white);padding-bottom:env(safe-area-inset-bottom)}
.nav-inner{display:grid;grid-template-columns:repeat(4,1fr);max-width:688px;margin:0 auto;padding:7px 12px 8px;gap:4px}
.nav-inner>a{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;min-height:64px;min-width:0;padding:7px 2px;font:400 .72rem/1.1 var(--ui);text-decoration:none;border-radius:12px;color:var(--ink)}
.nav-inner>a[aria-current="page"]{background:var(--light);font-weight:700;color:var(--navy)}
.nav-inner>a:hover{background:rgba(220,230,240,.5)}
.nav-inner svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
dialog{border:1px solid var(--blue);border-radius:20px;padding:28px;width:calc(100% - 40px);max-width:480px;color:var(--ink);background:var(--white);box-shadow:0 12px 60px rgba(24,44,64,.2)}
dialog::backdrop{background:rgba(24,44,64,.38)}
dialog h2{font-size:1.25rem;line-height:1.4}
.dialog-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.dialog-actions .button{flex:1}
.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}
.loading-mark{width:48px;height:24px;border:4px solid var(--light);border-top:0;border-radius:0 0 40px 40px;margin:100px auto}
@media(min-width:760px){.site-header{margin-top:14px;margin-bottom:44px}.app-shell{padding-bottom:140px}.start-hero{padding-top:0}.start-hero h1{font-size:2.5rem;max-width:510px}.start-hero .intro{max-width:560px}.situation-row{min-height:74px;padding:18px 22px}.row-number{margin-right:5px}.card{padding:28px}.exercise-section{margin-bottom:38px}.nav-inner>a{min-height:66px}.page-heading{margin-bottom:32px}}
@media(max-width:359px){.app-shell{padding-left:16px;padding-right:16px}.site-header{gap:9px}.brand{gap:8px;font-size:.76rem}.brand-mark{width:32px;height:32px}.situation-row{gap:10px;padding-left:13px;padding-right:13px}.card{padding:20px}.card-actions{flex-direction:column;align-items:stretch}.diary-scales{gap:10px}.timer-controls{gap:5px}.timer-controls .button{font-size:.8rem}.start-hero h1{font-size:1.95rem}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
@media print{.bottom-nav,.site-header,.exercise-actions,.card-actions,.diary-actions,#diary-form,.size-shortcut{display:none}.app-shell{padding:0;max-width:none}.card{break-inside:avoid}.page-heading{margin-top:0}}
