.home-page{max-width:var(--max-width-content);margin:0 auto;padding:var(--space-8)}.home-hero{position:relative;padding:var(--space-12) 0 var(--space-12);display:flex;flex-direction:column;gap:var(--space-8)}@media(min-width:900px){.home-hero{padding:var(--space-20) 0 var(--space-16);gap:var(--space-12)}}.home-hero h1{max-width:22ch;font-size:clamp(var(--font-size-3xl),7vw,var(--font-size-5xl));letter-spacing:-.04em;line-height:.98;margin:0}.home-hero h1 em{font-style:italic;color:var(--color-accent)}.hero-rule{display:block;height:2px;width:0;background:var(--color-accent);animation:hero-rule-draw 1.6s var(--ease-out) .55s forwards}@keyframes hero-rule-draw{to{width:220px}}@media(prefers-reduced-motion:reduce){.hero-rule{animation:none;width:220px}}.home-hero .lede{font-size:var(--font-size-lg);color:var(--color-text-muted);line-height:var(--line-height-loose);max-width:50ch;margin:0}.home-hero-meta{margin:0;font-family:var(--font-mono);font-size:var(--font-size-xs);letter-spacing:.18em;text-transform:uppercase;color:var(--color-text-faint);display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-4)}.home-hero-meta span{position:relative;padding-left:var(--space-4)}.home-hero-meta span:before{content:"";position:absolute;left:0;top:.55em;width:8px;height:1px;background:var(--color-accent)}.home-hero-meta span:first-child{padding-left:0}.home-hero-meta span:first-child:before{display:none}.catalogue-group{margin-bottom:var(--space-16)}.catalogue-group.is-hidden{display:none}.shelf-head{position:relative;display:flex;align-items:baseline;gap:var(--space-4);margin:0 0 var(--space-6);padding-bottom:var(--space-3)}.shelf-title{margin:0;font-family:var(--font-display);font-size:clamp(var(--font-size-xl),2.4vw,var(--font-size-2xl));font-weight:400;letter-spacing:-.018em;color:var(--color-text)}.shelf-pin{color:var(--color-accent);font-size:.85em;margin-right:var(--space-1);display:inline-block;transform:translateY(-.05em)}.shelf-link{font-family:var(--font-mono);font-size:var(--font-size-xs);letter-spacing:.18em;text-transform:uppercase;color:var(--color-accent);text-decoration:none;font-weight:600;transition:color var(--duration-fast) var(--ease-out)}.shelf-link:hover{color:var(--color-text)}.shelf-link span{display:inline-block;transition:transform var(--duration-base) var(--ease-out)}.shelf-link:hover span{transform:translate(4px)}.shelf-rule{position:absolute;bottom:0;left:0;right:0;height:1px;background:var(--color-border)}.calc-grid{gap:var(--space-6)}.calc-tile{position:relative;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:visible;isolation:isolate;min-height:420px;padding:0;transition:background var(--duration-base) var(--ease-out),border-color var(--duration-base) var(--ease-out),box-shadow var(--duration-base) var(--ease-out),transform var(--duration-base) var(--ease-out)}.calc-tile:hover{transform:none}.calc-tile:before{display:none}.tile-link{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-8);color:inherit;text-decoration:none;height:100%;min-height:inherit;border-radius:inherit}.calc-tile-coming{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-8);border-style:dashed;border-color:color-mix(in srgb,var(--color-accent) 25%,var(--color-border));background:transparent}.tile-glyph{width:84px;height:84px;color:var(--color-accent);margin-bottom:var(--space-2);transition:transform .6s var(--ease-out),color var(--duration-base) var(--ease-out)}.tile-glyph svg{display:block;width:100%;height:100%;overflow:visible}.calc-tile:has(.tile-link:hover) .tile-glyph{transform:translateY(-4px) rotate(-3deg)}.calc-tile-coming .tile-glyph{color:color-mix(in srgb,var(--color-accent) 55%,var(--color-text-faint));opacity:.7}.tile-kicker{margin:0;font-family:var(--font-mono);font-size:var(--font-size-xs);letter-spacing:.22em;text-transform:uppercase;color:var(--color-text-faint);font-weight:500}.tile-title{margin:0;font-family:var(--font-display);font-size:clamp(var(--font-size-xl),2.6vw,var(--font-size-2xl));font-weight:400;line-height:1.05;letter-spacing:-.02em;color:var(--color-text);padding-bottom:6px;position:relative}.tile-title:after{content:"";position:absolute;left:0;bottom:0;height:1.5px;width:0;background:var(--color-accent);transition:width var(--duration-slow) var(--ease-out)}.calc-tile:has(.tile-link:hover) .tile-title:after{width:64px}.tile-deck{margin:0;color:var(--color-text-muted);line-height:1.55}.tile-foot{margin-top:auto;padding-top:var(--space-6);display:flex;align-items:center;justify-content:flex-end}.tile-cta{font-family:var(--font-mono);font-size:var(--font-size-xs);font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--color-accent);display:inline-flex;align-items:center;gap:var(--space-2)}.tile-cta-coming{color:var(--color-text-faint)}.tile-arrow{display:inline-block;transition:transform var(--duration-base) var(--ease-out)}.calc-tile:has(.tile-link:hover) .tile-arrow{transform:translate(6px)}.tile-link:hover{color:inherit}.tile-link:focus-visible{outline:none}.calc-tile:has(.tile-link:hover){transform:translateY(-3px);background:color-mix(in srgb,var(--color-accent-soft) 32%,var(--color-surface));border-color:color-mix(in srgb,var(--color-accent) 40%,var(--color-border));box-shadow:var(--shadow-md)}.calc-tile:has(.tile-link:focus-visible){outline:2px solid var(--color-accent);outline-offset:4px;border-color:var(--color-accent)}.tile-link .tile-cta{margin-top:auto;padding-top:var(--space-6);align-self:flex-end}.tile-star{position:absolute;top:var(--space-4);right:var(--space-4);z-index:3;width:40px;height:40px;border:0;background:transparent;color:var(--color-text-faint);cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:color var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.tile-star svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linejoin:round;transition:fill var(--duration-fast) var(--ease-out)}.tile-star:hover{color:var(--color-accent);transform:scale(1.12)}.tile-star:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px;border-radius:50%}.tile-star.is-favourited{color:var(--color-accent)}.tile-star.is-favourited svg{fill:var(--color-accent);animation:star-ping .6s var(--ease-out)}@keyframes star-ping{0%{transform:scale(.85)}55%{transform:scale(1.22)}to{transform:scale(1)}}@media(prefers-reduced-motion:reduce){.tile-star.is-favourited svg{animation:none}.calc-tile:has(.tile-link:hover){transform:none}.calc-tile:has(.tile-link:hover) .tile-glyph{transform:none}}.calc-tile.is-hidden{display:none}.catalogue-guides{margin-top:var(--space-12)}.catalogue-guides .shelf-head{margin-bottom:var(--space-8)}.catalogue-favourites .shelf-head{border-top:2px dotted color-mix(in srgb,var(--color-accent) 50%,transparent);padding-top:var(--space-6);margin-top:var(--space-2)}.catalogue-clear-favs{margin-left:auto;border:0;background:transparent;color:var(--color-text-faint);font-family:var(--font-mono);font-size:var(--font-size-xs);letter-spacing:.16em;text-transform:uppercase;cursor:pointer;padding:var(--space-1) 0;transition:color var(--duration-fast) var(--ease-out);text-decoration:underline;text-underline-offset:4px;text-decoration-color:color-mix(in srgb,currentColor 50%,transparent)}.catalogue-clear-favs:hover{color:var(--color-text)}.catalogue-clear-favs:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}@media(max-width:720px){.calc-tile{min-height:380px}.tile-link,.calc-tile-coming{padding:var(--space-6)}.tile-glyph{width:64px;height:64px}.tile-star{top:var(--space-3);right:var(--space-3)}}@media(max-width:600px){.home-hero{padding:var(--space-12) 0 var(--space-16)}}.catalogue-group:not(.is-hidden) .calc-tile{animation:tile-rise .6s var(--ease-out) both}.catalogue-group:not(.is-hidden) .calc-tile:nth-child(2){animation-delay:80ms}.catalogue-group:not(.is-hidden) .calc-tile:nth-child(3){animation-delay:.16s}.catalogue-group:not(.is-hidden) .calc-tile:nth-child(4){animation-delay:.24s}@keyframes tile-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.catalogue-group:not(.is-hidden) .calc-tile{animation:none}}.suggest-section{margin-top:var(--space-16);padding-top:var(--space-12);border-top:1px solid var(--color-border)}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-6);padding-top:var(--space-4);margin-bottom:var(--space-8)}.section-head h2{margin:0;font-size:var(--font-size-2xl)}.section-head .section-meta{font-family:var(--font-mono);font-size:var(--font-size-xs);letter-spacing:.18em;text-transform:uppercase;color:var(--color-text-faint);white-space:nowrap}
