@font-face {
    font-family: 'DM Sans';
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    src: url('fonts/dm-sans-var-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'IBM Plex Mono';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('fonts/ibm-plex-mono-400-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'IBM Plex Mono';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url('fonts/ibm-plex-mono-500-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
:root{--paper:#07100e;--white:#0b1613;--ink:#edf7f1;--muted:#949c98;--line:rgba(255,255,255,.09);--green:#76f7a5;--green-light:rgba(118,247,165,.07);--tomato:#ff765f;--tomato-wash:rgba(255,118,95,.1);--blue:#6ed6e8;--sans:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;--mono:'IBM Plex Mono','SFMono-Regular',Consolas,monospace;--serif:var(--sans);color-scheme:dark}
input::placeholder,textarea::placeholder{color:#7d847f}.ring-track{stroke:rgba(255,255,255,.08)}.intro-note svg{color:var(--green)}.cycle span{border-color:#526b5c}.step-number{border-color:rgba(118,247,165,.3)}.intention-card textarea,.weekly-plan textarea{background:#07110e;border-color:rgba(118,247,165,.16)}.thought-toggle span{border-color:#526b5c}.chart-bar{background:rgba(118,247,165,.25)}.session-empty{border-color:rgba(118,247,165,.22)}.settings-row input[type=checkbox]{background:#43534a}.settings-row input[type=checkbox]:checked{background:var(--green)}.storage-warning{background:#352a16;color:#e8c46a}dialog{box-shadow:0 20px 100px #00000080}dialog::backdrop{background:#030806b3}body.is-break .timer-card,body.is-break .tomato-leaf{background:#0a1b19}body.is-break.quiet .timer-card{background:transparent}body.is-break.quiet .tomato-leaf{background:var(--paper)}
/* Shared visual language with houfu72.com: forest surfaces, mint accents, DM Sans and Plex Mono. */
body{background:radial-gradient(ellipse at 8% 0,rgba(35,199,103,.065),transparent 38rem),var(--paper)}h1{font-weight:650;letter-spacing:-.045em}h1 em{font-style:normal;font-weight:650}h2,h3{font-weight:600;letter-spacing:-.025em}.brand>span{font-weight:650;letter-spacing:-.04em}.brand-caption{font-family:var(--mono);font-weight:400;letter-spacing:.02em}.eyebrow{font-family:var(--mono);font-weight:500;color:var(--green);letter-spacing:.13em}.tiny-label,.date-label,.timer-state,.source-type,.source-meta>span:first-child,.step-number,.keyboard-note{font-family:var(--mono)}.topbar{min-height:95px}.topbar-actions{display:flex;gap:7px;align-items:center}.topbar-actions .icon-button{margin-left:0}.icon-button{border-radius:10px;background:rgba(255,255,255,.03)}.icon-button:hover{border-color:rgba(118,247,165,.34)}.tomato-button img{width:19px;height:19px;image-rendering:pixelated}.tabs button[aria-selected=true]{border:1px solid rgba(118,247,165,.25);color:var(--green);background:rgba(118,247,165,.08)}.tabs button{border:1px solid transparent}.tabs button:hover{background:rgba(255,255,255,.04)}.timer-card,.paper-card,.source-card{background:var(--white);border-radius:24px}.intention-card{background:linear-gradient(140deg,rgba(118,247,165,.065),rgba(118,247,165,.025));border-color:rgba(118,247,165,.16);border-radius:24px}.later-card{background:rgba(255,255,255,.018);border-radius:24px}.button{border-radius:999px}.button.primary{background:var(--green);color:#04140b;font-weight:650}.button.primary:hover{background:#9dfbbf}.button.secondary{border-color:rgba(118,247,165,.25);background:transparent}.button.secondary:hover{background:var(--green-light)}.button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,button:focus-visible{outline-color:var(--green)}.timer-display{font-family:var(--mono);font-size:68px;letter-spacing:-.06em}.timer-state{font-size:10px;color:var(--green)}.timer-caption{font-style:normal;font-size:13px}.ring-progress{stroke:var(--green);filter:drop-shadow(0 0 5px rgba(118,247,165,.15))}.if-then{font-style:normal;font-size:11px}.step-number{color:var(--green)}.source-application b{color:var(--green)}.toast{background:#06100c;color:var(--green);border:1px solid rgba(118,247,165,.4)}.source-intro{border-color:rgba(118,247,165,.35)}.thought-toggle[aria-pressed=true] span:after{color:#04140b}.settings-row input[type=checkbox]:before{background:var(--ink)}.footer a:hover{color:var(--green)}.quiet .intention-card textarea{font-size:21px;font-weight:500}.tip-copy{font-size:20px;line-height:1.65;letter-spacing:-.015em;color:var(--ink);margin:20px 0}.tip-source{font-family:var(--mono);font-size:10px;color:var(--muted)}.tip-dialog .dialog-heading{padding-right:25px}.tip-dialog .dialog-heading h2{font-size:28px}.tip-dialog .eyebrow{color:var(--green)}body.is-break .start-button{background:var(--blue);color:#04140b}body.is-break .ring-progress{stroke:var(--blue)}body.is-break .timer-state{color:var(--blue)}
@media(max-width:720px){.topbar{min-height:90px}.topbar-actions{margin-left:auto}.intro h1{font-size:46px}.timer-display{font-size:66px}.brand>span{font-size:29px}.brand-caption{font-size:9px}.source-card h2{font-size:25px}.quiet .intention-card textarea{font-size:20px}}

/* Instrument dial and quiet greenhouse glass. Motion stops during focused work. */
body{isolation:isolate}body:before{content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;background-image:linear-gradient(rgba(118,247,165,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(118,247,165,.035) 1px,transparent 1px);background-size:48px 48px;mask-image:radial-gradient(ellipse at 20% 8%,#000,transparent 68%);opacity:.55}.timer-card{background:radial-gradient(ellipse at 50% 40%,rgba(118,247,165,.025),transparent 70%),var(--white);box-shadow:inset 0 1px 0 rgba(118,247,165,.035),0 25px 80px -60px rgba(0,0,0,.9)}.timer-card:before{content:'';position:absolute;inset:-1px;border-radius:inherit;pointer-events:none;border:1px solid transparent;background:linear-gradient(140deg,rgba(118,247,165,.12),transparent 30%,transparent 75%,rgba(110,214,232,.06)) border-box;mask:linear-gradient(#fff 0 0) padding-box,linear-gradient(#fff 0 0);mask-composite:exclude}.dial-ticks line{stroke:rgba(148,180,160,.26);stroke-width:1}.dial-ticks .major{stroke:rgba(118,247,165,.45);stroke-width:1.3}.inner-track{fill:none;stroke:rgba(118,247,165,.035);stroke-width:1}.dial-halo{animation:tend-breathe 5s ease-in-out infinite;transform-origin:center}.progress-dot{fill:var(--green);filter:drop-shadow(0 0 5px rgba(118,247,165,.75))}body:not(.is-break) .ring-progress{stroke:url(#tend-progress)}.timer-running .dial-halo{animation:none;opacity:.65}.timer-running .status-dot{box-shadow:0 0 8px rgba(118,247,165,.45)}.intention-card:focus-within,.later-card:focus-within{border-color:rgba(118,247,165,.36);box-shadow:0 0 35px -25px rgba(118,247,165,.15)}.intro h1 em{background:linear-gradient(110deg,#76f7a5 15%,#6ed6e8 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.start-button{box-shadow:0 0 28px -12px rgba(118,247,165,.45);transition:background .15s,box-shadow .15s,transform .15s}.start-button:hover{transform:translateY(-1px);box-shadow:0 0 35px -10px rgba(118,247,165,.5)}.tomato-button:hover{border-color:rgba(255,118,95,.5);background:rgba(255,118,95,.08);box-shadow:0 0 18px -9px var(--tomato)}.tomato-button img{transition:transform .2s}.tomato-button:hover img{transform:rotate(-9deg) scale(1.08)}.quiet:before{display:none}.quiet .timer-card{box-shadow:none;background:transparent}.quiet .timer-card:before{display:none}.quiet .dial-halo{animation:none;opacity:.4}.quiet .dial-ticks line{opacity:.65}.is-break .progress-dot{fill:var(--blue)}@keyframes tend-breathe{0%,100%{opacity:.55}50%{opacity:1}}@media(max-width:720px){.intro h1{font-size:46px;letter-spacing:-.05em}.dial-ticks .minor{opacity:.75}.timer-card:before{background:linear-gradient(140deg,rgba(118,247,165,.13),transparent 45%) border-box}}
