[hidden] { display: none !important; }
.tools-page { background:#fff; }
.tool-shell { width:calc(100% - 32px); max-width:1200px; margin:auto; }
.tool-header { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:80px; }
.tool-header nav { gap:18px; }
.tool-header nav a { white-space:nowrap; display:inline-flex; align-items:center; min-height:44px; }
.tool-hero,.tool-intro { position:relative; padding:16px 0 22px; border-bottom:1px solid var(--line); }
.tool-hero::after,.tool-intro::after { content:""; position:absolute; width:56px; height:3px; left:0; bottom:-1px; background:var(--orange); }
.tool-hero .eyebrow,.tool-intro .eyebrow { color:var(--muted); font-size:9px; }
.tool-hero h1,.tool-intro h1 { display:flex; align-items:baseline; flex-wrap:wrap; gap:.15em; font-size:clamp(32px,8.5vw,60px); margin:14px 0 12px; font-weight:400; }
.tool-hero .display-line+.display-line,.tool-intro .display-line+.display-line { margin:0; }
.tool-hero p,.tool-intro p { max-width:560px; font-size:14px; color:var(--muted); line-height:1.5; }
.tool-texture { position:absolute; inset:0; overflow:hidden; pointer-events:none; z-index:-1; }
.tool-texture svg { position:absolute; width:520px; height:520px; right:-210px; bottom:-140px; transform:rotate(180deg); opacity:.17; }
.tool-grid { display:grid; align-items:stretch; gap:16px; margin:24px 0; }
.tool-grid>.tool-card { display:flex; flex-direction:column; align-items:flex-start; gap:0; position:relative; min-width:0; background:#f5f5f1; border:1px solid var(--line); padding:24px; transition:border-color .18s,background .18s; }
.tool-card-top { display:flex; align-items:center; gap:10px; width:70px; font-size:11px; font-weight:650; color:var(--muted); }
.tool-card-top::after { content:""; flex:1; height:2px; background:var(--orange); }
.tool-card .tool-card-art { position:absolute; top:48px; right:20px; width:80px; height:80px; color:var(--ink); stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.tool-card-art .art-guide,.goal-calendar .art-guide { stroke:var(--line); stroke-width:1; }
.tool-card-art .art-accent,.goal-calendar .art-accent { stroke:var(--orange); stroke-width:3; }
.tool-card-art .art-dot,.goal-calendar .art-dot { fill:var(--orange); stroke:none; }
.tool-card h2 { width:calc(100% - 88px); font-size:clamp(38px,10vw,46px); font-weight:400; margin-top:20px; }
.tool-card p { color:var(--muted); font-size:14px; font-weight:400; line-height:1.5; margin:18px 0 22px; max-width:290px; }
.tool-card-cta { display:inline-flex; justify-content:space-between; align-items:center; gap:24px; min-height:48px; padding:12px 18px; margin-top:auto; border-radius:28px; background:var(--ink); color:#fff; font-size:14px; font-weight:650; transition:background .18s,color .18s; }
.tool-card-cta svg { width:18px; height:18px; }
.tool-card:focus-visible { outline:2px solid var(--ink); outline-offset:4px; }
.tool-card:focus-visible .tool-card-cta { background:var(--orange); color:var(--ink); }
@media(hover:hover){.tool-grid>.tool-card:hover{border-color:var(--ink);background:#fff;text-decoration:none}.tool-card:hover .tool-card-cta{background:var(--orange-hover);color:var(--ink)}}
@media(prefers-reduced-motion:reduce){.tool-grid>.tool-card,.tool-card-cta{transition:none}}
.privacy-note { color:var(--muted); font-size:12px; margin:26px 0 40px; }
.tool-footer { margin-top:48px; padding:24px 0; border-top:1px solid var(--line); display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px 24px; font-size:11px; color:var(--muted); }
.tool-footer a { min-height:44px; display:inline-flex; align-items:center; gap:8px; }
.tool-footer>span { display:flex; align-items:center; }
.tool-footer svg { width:13px; height:13px; }
.tool-intro { margin-bottom:24px; }
.timer-layout,.goal-layout,.finder-layout { display:grid; gap:24px; }
.timer-stage { background:var(--orange); position:relative; isolation:isolate; overflow:hidden; container-type:inline-size; padding:22px 18px; min-height:380px; display:flex; flex-direction:column; justify-content:center; text-align:center; color:var(--ink); }
.timer-stage[data-phase=rest] { background:#fff0bc; }
.timer-stage[data-phase=paused] { background:#f3f3ef; }
.timer-topline { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:10px; font-size:15px; font-weight:700; }
.stage-utility { display:inline-flex; align-items:center; justify-content:center; gap:9px; min-height:48px; margin-left:auto; border:1px solid var(--ink); border-radius:28px; padding:11px 16px; background:#fff; color:var(--ink); font:700 14px var(--font); white-space:nowrap; cursor:pointer; box-shadow:0 2px 0 rgb(20 20 20 / .2); }
.stage-utility svg { width:20px; height:20px; flex-shrink:0; }
.stage-utility .fullscreen-collapse,.stage-utility[aria-pressed=true] .fullscreen-expand { display:none; }
.stage-utility[aria-pressed=true] .fullscreen-collapse { display:block; }
.stage-utility:hover { background:#f5f5f1; }
.stage-utility:active { box-shadow:none; }
.timer-readout { height:min(29cqw,240px); width:100%; margin:24px 0 16px; flex-shrink:0; }
.timer-digits { display:block; width:100%; height:100%; }
.timer-round { font-size:18px; font-weight:650; letter-spacing:.025em; }
.timer-progress { height:4px; background:rgb(20 20 20 / .2); margin:28px 0; }
.timer-progress span { display:block; height:100%; width:0; background:var(--ink); }
.timer-controls { display:flex; gap:10px; justify-content:center; flex-wrap:wrap; }
.timer-primary,.timer-secondary { min-height:54px; border:1px solid var(--ink); border-radius:32px; padding:10px 24px; font-weight:650; cursor:pointer; font-size:16px; }
.timer-primary { background:var(--ink); color:#fff; flex:1; max-width:290px; }
.timer-secondary { background:transparent; }
.timer-device { margin-top:22px; font-size:10px; }
.timer-stage.expanded { position:fixed; inset:0; z-index:100; width:100vw; height:100dvh; max-height:none; min-height:0; padding:max(20px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left)); }
.timer-expanded { overflow:hidden; }
.timer-stage.expanded .timer-readout { height:min(29cqw,48dvh); margin:3vh 0; }
.timer-stage.expanded .timer-topline { font-size:clamp(16px,3vw,28px); }
.timer-stage.expanded .timer-round { font-size:clamp(20px,4vw,34px); }
.tool-panel { padding:24px; background:#f5f5f1; }
.tool-panel h2 { font-size:25px; font-weight:650; line-height:1.15; letter-spacing:-.04em; margin-bottom:20px; }
.panel-heading { display:flex; justify-content:space-between; gap:16px; }
.panel-heading>span { font-size:10px; color:var(--muted); }
.field { display:flex; flex-direction:column; gap:8px; font-size:13px; font-weight:600; margin-top:20px; min-width:0; }
.field>span { font-size:11px; color:var(--muted); font-weight:400; margin-top:-4px; }
.field input,.field select { border:1px solid #aaa9a2; border-radius:8px; background-color:#fff; color:var(--ink); padding:14px; min-height:56px; width:100%; min-width:0; font:16px/1.4 var(--font); }
.field select { -webkit-appearance:none; appearance:none; padding-right:46px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23141414' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; background-size:20px 20px; cursor:pointer; }
.field input:hover:not(:disabled),.field select:hover:not(:disabled) { border-color:var(--ink); }
.field input:focus,.field select:focus { border-color:var(--ink); box-shadow:0 0 0 3px rgb(255 90 0 / .18); }
.field input:focus-visible,.field select:focus-visible { outline:2px solid var(--ink); outline-offset:2px; }
.field input::placeholder { color:#77766e; opacity:1; }
.field input.no-spinner { -moz-appearance:textfield; appearance:textfield; }
.field input.no-spinner::-webkit-inner-spin-button,.field input.no-spinner::-webkit-outer-spin-button { -webkit-appearance:none; margin:0; }
.field-pair { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.goal-basics { grid-template-columns:minmax(88px,1fr) auto; gap:16px; align-items:end; }
.unit-switch { display:flex; padding:4px; margin:0; border:1px solid #aaa9a2; border-radius:30px; background:#fff; min-width:0; }
.unit-switch label { position:relative; display:block; cursor:pointer; }
.unit-switch span { display:grid; place-items:center; min-width:54px; min-height:46px; padding:10px 12px; border-radius:24px; font-size:13px; font-weight:700; color:var(--muted); }
.unit-switch input:checked+span { background:var(--orange); color:var(--ink); }
@media(hover:hover){.unit-switch label:hover input:checked+span{background:var(--orange-hover)}}
.unit-switch input:focus-visible+span { outline:2px solid var(--ink); outline-offset:2px; }
.form-note { margin-top:10px; font-size:12px; font-weight:400; line-height:1.5; color:var(--muted); }
.form-note:empty { display:none; }
.timer-setup-link { display:inline-flex; align-items:center; gap:16px; min-height:44px; margin-top:2px; font-size:13px; font-weight:650; }
.timer-settings { scroll-margin-top:24px; }
.timer-settings h2 { margin-bottom:10px; font-size:30px; }
.setup-intro { font-size:13px; color:var(--muted); line-height:1.5; }
.setup-step { border:0; padding:0; margin:28px 0 0; min-width:0; }
.setup-step legend { display:flex; align-items:center; gap:10px; margin-bottom:14px; padding:0; font-size:14px; font-weight:650; }
.step-number { display:inline-grid; place-items:center; width:24px; height:24px; font-size:10px; border:1px solid #bdbdb6; border-radius:50%; }
.timer-modes { display:grid; gap:8px; }
.timer-mode-card { display:flex; align-items:flex-start; gap:12px; padding:14px; border:1px solid #bdbdb6; background:#fff; cursor:pointer; }
.timer-mode-card:has(:checked) { border-color:var(--orange); box-shadow:inset 3px 0 var(--orange); background:#fff7f0; }
.timer-mode-card:has(:focus-visible) { outline:2px solid var(--ink); outline-offset:3px; }
.timer-mode-card:has(:disabled) { cursor:not-allowed; }
.timer-mode-card input { width:18px; height:18px; margin:2px 0 0; flex-shrink:0; accent-color:var(--ink); }
.timer-mode-card strong { display:block; font-size:15px; line-height:1.3; }
.timer-mode-card small { display:block; margin-top:5px; font-size:12px; color:var(--muted); line-height:1.45; }
.preset-label { font-size:12px; color:var(--muted); }
.preset-row { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; margin-top:12px; }
.preset-row button { min-height:94px; min-width:0; padding:10px 5px; border:1px solid #bdbdb6; background:#fff; font-family:var(--font); cursor:pointer; text-align:center; }
.preset-row button strong { display:block; font-size:20px; letter-spacing:-.04em; line-height:1.2; }
.preset-row button strong span { display:block; font-size:12px; font-weight:400; letter-spacing:0; margin:3px 0; }
.preset-row button>span { display:block; font-size:12px; }
.preset-row button small { display:block; font-size:11px; color:var(--muted); margin-top:5px; }
.preset-row button[aria-pressed=true] { background:#fff0e4; border-color:var(--orange); box-shadow:inset 0 -3px var(--orange); }
.preset-row button:hover:not(:disabled) { border-color:var(--ink); }
.timer-customize { margin-top:16px; border-top:1px solid #d5d5ce; border-bottom:1px solid #d5d5ce; }
.timer-customize summary { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:52px; padding:14px 0; list-style:none; font-size:13px; font-weight:650; }
.timer-customize summary::-webkit-details-marker { display:none; }
.timer-customize summary svg { width:20px; height:20px; flex-shrink:0; }
.timer-customize[open] summary svg { transform:rotate(180deg); }
.timer-customize summary:focus-visible { outline:2px solid var(--ink); outline-offset:3px; }
.timer-customize[open] { padding-bottom:20px; }
.timer-customize .field-pair:first-of-type .field { margin-top:4px; }
.timer-settings .field { gap:6px; }
.timer-settings .field small { font-size:11px; line-height:1.4; font-weight:400; color:var(--muted); }
.timer-settings .field input { font-weight:650; font-size:20px; }
.timer-sound { align-items:center; min-height:44px; }
.timer-sound>span { font-weight:650; }
.timer-sound small { display:block; font-size:11px; font-weight:400; color:var(--muted); margin-top:3px; }
.session-preview { padding:20px 16px; margin-top:24px; background:#fff; border-top:3px solid var(--orange); }
.session-preview .eyebrow { font-size:10px; }
.session-preview>strong { display:block; margin-top:8px; font-size:25px; line-height:1.15; letter-spacing:-.04em; }
.session-preview p { font-size:12px; margin-top:10px; }
.session-flow { display:flex; align-items:center; flex-wrap:wrap; gap:6px; margin-top:18px; font-size:10px; }
.session-flow span { padding:5px 7px; background:#f3f3ef; }
.session-flow b { font-weight:400; }
.session-preview>small { display:block; margin-top:12px; font-size:11px; line-height:1.5; color:var(--muted); }
.setup-start { display:flex; align-items:center; justify-content:center; gap:20px; width:100%; min-height:54px; padding:12px 20px; margin-top:18px; border:0; border-radius:30px; background:var(--ink); color:#fff; font:650 15px var(--font); cursor:pointer; }
.setup-footer { font-size:11px; line-height:1.5; color:var(--muted); text-align:center; margin-top:12px; }
.setup-lock-note { padding:12px; font-size:12px; line-height:1.5; background:#fff0e4; margin-top:16px; }
.timer-stage:not(.expanded) { align-self:start; }
@media(min-width:1000px) and (min-height:700px){.timer-stage:not(.expanded){position:sticky;top:24px}}
.check-line { display:flex; align-items:flex-start; gap:10px; font-size:13px; margin:22px 0 14px; }
.check-line input { width:20px; height:20px; margin:0; flex-shrink:0; accent-color:var(--ink); }
.field-help { font-size:12px; line-height:1.6; color:var(--muted); }
.form-error { color:#962900; font-size:13px; margin-top:14px; }
.form-error:empty { display:none; }
.tool-panel :disabled { opacity:.6; cursor:not-allowed; }
.tool-notes,.method-note { margin-top:32px; max-width:850px; }
.tool-notes h2 { font-size:24px; margin-bottom:12px; }
.tool-notes p,.method-note p { font-size:14px; color:var(--muted); line-height:1.65; }
.finder-layout,.goal-layout { margin-top:28px; }
.finder-filters { align-self:start; }
.finder-equipment { border-top:1px solid var(--line); margin-top:20px; }
.finder-equipment summary { display:flex; align-items:center; min-height:72px; padding:15px 32px 0 0; }
.finder-equipment summary small { display:block; margin-top:5px; color:var(--muted); font-size:13px; font-weight:400; }
.finder-equipment summary::after { top:35px; }
.finder-equipment[open]>summary::after { top:39px; }
.finder-equipment fieldset { border:0; padding:0; margin:14px 0 0; min-width:0; }
.equipment-options { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:8px; margin-top:12px; }
.equipment-chip { display:flex; gap:10px; align-items:center; border:1px solid var(--line); border-radius:8px; background:#fff; padding:12px; font-size:14px; min-height:48px; cursor:pointer; }
.equipment-chip:has(:checked) { border-color:#aaa9a2; }
.equipment-chip:has(:focus-visible) { outline:2px solid var(--ink); outline-offset:3px; }
.equipment-chip input { width:20px; height:20px; flex-shrink:0; margin:0; accent-color:var(--ink); }
.reset-filters { background:transparent; border:0; text-decoration:underline; text-underline-offset:4px; min-height:44px; padding:0; margin-top:14px; font-size:13px; cursor:pointer; }
.results-count { font-size:12px; color:var(--muted); margin-bottom:14px; }
.finder-results { display:grid; gap:18px; }
.finder-card { display:flex; flex-direction:column; border:1px solid var(--line); padding:24px; min-width:0; }
.finder-meta { display:flex; justify-content:space-between; gap:10px; text-transform:uppercase; font-size:9px; letter-spacing:.05em; }
.finder-meta>span:first-child { border-left:3px solid var(--orange); padding-left:8px; }
.finder-card h2 { font-size:28px; line-height:1.1; letter-spacing:-.04em; margin:22px 0 12px; }
.finder-card>p { font-size:13px; color:var(--muted); }
.finder-card .equipment-list { margin-top:16px; margin-bottom:18px; font-size:11px; }
.equipment-list strong { display:block; color:var(--ink); margin-bottom:4px; }
.finder-card details { border-top:1px solid var(--line); border-bottom:1px solid var(--line); margin:auto 0 18px; }
summary { cursor:pointer; min-height:52px; padding:15px 32px 15px 0; font-size:14px; font-weight:600; position:relative; list-style:none; }
summary::-webkit-details-marker { display:none; }
summary::after { content:""; position:absolute; right:7px; top:21px; width:8px; height:8px; border-right:1.8px solid currentColor; border-bottom:1.8px solid currentColor; transform:rotate(45deg); }
details[open]>summary::after { transform:rotate(225deg); top:25px; }
summary:focus-visible { outline:2px solid var(--ink); outline-offset:3px; }
.timer-customize summary::after { content:none; }
.finder-card li { font-size:13px; margin:8px 0; }
.finder-card ul { padding-left:20px; }
.finder-card details p { padding-bottom:14px; }
.finder-actions { display:flex; flex-wrap:wrap; gap:8px 20px; align-items:center; }
.finder-actions .button { font-size:14px; gap:14px; min-height:48px; }
.finder-actions .text-link { font-size:14px; gap:8px; min-height:48px; }
.empty-state { background:#f5f5f1; padding:30px; }
.empty-state h2 { font-size:30px; }.empty-state p { font-size:14px; color:var(--muted); margin:16px 0 24px; }
.empty-state button { border:0; cursor:pointer; }
.goal-submit { border:0; width:100%; cursor:pointer; margin:24px 0 14px; }
.goal-output { align-self:start; background:#f5f5f1; padding:30px 24px; border-top:4px solid var(--orange); }
.goal-placeholder h2 { font-size:39px; line-height:1.06; letter-spacing:-.045em; margin:18px 0 20px; }
.goal-placeholder p { font-size:14px; color:var(--muted); max-width:370px; }
.goal-calendar { display:block; width:88px; height:88px; margin-top:18px; color:var(--ink); stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
#goal-result { scroll-margin-top:24px; }
.goal-date { font-size:clamp(32px,7vw,48px); font-weight:750; line-height:1.06; letter-spacing:-.045em; margin:20px 0 24px; }
.goal-countdown { display:flex; align-items:baseline; flex-wrap:wrap; gap:4px 12px; }
.goal-countdown strong { font-size:56px; line-height:1; letter-spacing:-.055em; font-weight:750; }
.goal-countdown span { font-size:14px; color:var(--muted); }
#goal-assumption { margin-top:14px; }
.goal-quote { margin:24px 0 0; padding-top:22px; border-top:1px solid var(--line); }
.goal-quote p { font-size:clamp(23px,5.8vw,30px); font-weight:700; letter-spacing:-.035em; line-height:1.2; }
.method-note { border-top:1px solid var(--line); }.method-note p { margin:14px 0; font-size:12px; }.method-note a { text-decoration:underline; }
.noscript-note { margin:24px; padding:20px; border:1px solid var(--orange); }
@media(forced-colors:active){.field select{appearance:auto;background-image:none}.field input:focus,.field select:focus{outline:2px solid Highlight}}
.tool-grid{grid-template-columns:1fr}
@media(min-width:700px) and (max-width:999px){.tool-grid>.tool-card{padding:20px}.tool-card .tool-card-art{position:static;width:64px;height:64px;margin-top:16px}.tool-card h2{width:100%;font-size:38px;margin-top:16px}.tool-card-cta{gap:10px;padding:12px 14px;font-size:13px}}
@media(min-width:700px){.tool-shell{width:calc(100% - 64px)}.tool-hero,.tool-intro{padding:20px 0 26px}.tool-grid{grid-template-columns:repeat(3,1fr)}.timer-layout{grid-template-columns:minmax(0,1.6fr) minmax(260px,1fr)}.timer-stage{padding:30px}.goal-layout{grid-template-columns:1fr 1fr;gap:28px}.finder-layout{grid-template-columns:260px minmax(0,1fr)}.tool-panel{padding:28px}.tool-header{min-height:96px}.goal-placeholder h2{font-size:clamp(36px,4.7vw,56px)}}
@media(min-width:1000px){.tool-shell{width:calc(100% - 96px)}.finder-results{grid-template-columns:1fr 1fr}.finder-card{padding:26px}.timer-stage{min-height:530px}.goal-layout{grid-template-columns:1fr 1.1fr}.goal-output{padding:40px}}
@media(max-width:359px){.tool-shell{width:calc(100% - 24px)}.tool-header .brand svg{width:136px}.tool-header nav{gap:12px;font-size:11px}.tool-panel{padding:20px}.timer-stage{padding:18px 14px}.timer-primary,.timer-secondary{padding:10px 18px;font-size:14px}.timer-round{font-size:16px}.finder-card{padding:20px}}
@media(orientation:landscape) and (max-height:550px){
 .timer-layout{grid-template-columns:1fr}.timer-stage{min-height:330px}
 .timer-stage.expanded{padding:8px max(24px,env(safe-area-inset-right)) 8px max(24px,env(safe-area-inset-left));display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:44px minmax(0,1fr) 18px 3px 44px;gap:6px}
 .timer-stage.expanded .timer-topline{font-size:16px}.timer-stage.expanded .stage-utility{min-height:44px;padding:8px 14px;font-size:13px}
 .timer-stage.expanded .timer-readout{height:100%;min-height:0;margin:0;align-self:stretch}
 .timer-stage.expanded .timer-progress{margin:0}.timer-stage.expanded .timer-device{display:none}
 .timer-stage.expanded .timer-primary,.timer-stage.expanded .timer-secondary{min-height:44px;padding:6px 24px}.timer-stage.expanded .timer-round{font-size:18px}
}
