.landing{min-height:100dvh;color:var(--fg);background:var(--page-bg);grid-template-rows:auto 1fr auto;padding:0 clamp(16px,5vw,72px);display:grid;overflow-x:clip}.l-top{border-bottom:1px solid var(--hair);justify-content:space-between;align-items:center;gap:16px;padding:20px 0;display:flex}.l-tools{align-items:center;gap:18px;display:flex}.l-lang{color:var(--fg-2);font-size:15px;text-decoration:none}.l-lang:hover{text-decoration:underline}.l-hero{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:center;gap:clamp(32px,6vw,96px);padding:clamp(28px,6vh,72px) 0;display:grid}.l-words{flex-direction:column;gap:22px;max-width:720px;display:flex}.l-kicker{letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0;font-size:13px}.l-headline{font-family:var(--font-display);letter-spacing:-.025em;text-wrap:balance;margin:0;font-size:clamp(44px,7vw,96px);font-weight:400;line-height:.98}.l-lead{color:var(--fg-2);text-wrap:pretty;max-width:36em;margin:0;font-size:clamp(17px,1.5vw,21px);line-height:1.5}.l-words>*{animation:.9s cubic-bezier(.2,.7,.1,1) both riseIn}.l-words>:nth-child(2){animation-delay:.15s}.l-words>:nth-child(3){animation-delay:.3s}.l-words>:nth-child(4){animation-delay:.5s}@keyframes riseIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.l-foot{border-top:1px solid var(--hair);color:var(--fg-3);justify-content:space-between;align-items:center;gap:16px;padding:22px 0 26px;font-size:14px;display:flex}.l-foot p{margin:0}.l-byline a,.l-foot-mark{color:var(--fg-2)}.l-foot-end{align-items:center;gap:18px;display:flex}.l-foot-link{color:var(--fg-2);text-decoration:none}.l-foot-link:hover,.l-foot-link[aria-current=page]{text-underline-offset:.2em;text-decoration:underline}.loom{flex-direction:column;align-items:center;gap:16px;width:min(100%,400px);margin-inline:auto;display:flex;position:relative}.loom-stage{aspect-ratio:240/250;width:100%;position:relative}.loom-svg{width:100%;height:100%;overflow:visible}.loom-svg .warp{fill:var(--thread)}.loom-svg .thread-amber .warp{fill:var(--accent-strong)}.loom-svg .wefts{fill:var(--weft)}.loom-svg .weft-over-amber{fill:var(--weft-amber)}.loom-svg .glow-amber rect{fill:var(--accent-strong)}.loom-svg .tglow{fill:var(--glow)}.loom-hits{touch-action:pan-y;position:absolute;inset:0}.hit{width:16.667%;height:80%;top:9.6%;left:calc(8.333% + var(--i) * 16.667%);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:14px;padding:0;transition:background .2s;position:absolute}.hit:hover{background:var(--hover)}.hit:disabled{cursor:default}.hit:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.thread{transform-box:fill-box;transform-origin:50%}.warp{transform-box:fill-box;transform-origin:50% 0}.weft{transform-box:view-box;transform-origin:0;opacity:0;transition:opacity .6s,transform .6s cubic-bezier(.2,.7,.1,1);transform:translate(-14px)}.glow,.tglow{opacity:0;transition:opacity .5s}.loom-word{font-family:var(--font-mark);letter-spacing:.06em;opacity:1;font-size:clamp(48px,11vw,72px);font-weight:800;line-height:1}.thread.pluck-a{animation:.9s cubic-bezier(.22,.61,.36,1) pluckA}.thread.pluck-b{animation:.9s cubic-bezier(.22,.61,.36,1) pluckB}.thread.soft-a{animation:.9s cubic-bezier(.22,.61,.36,1) pluckSoftA}.thread.soft-b{animation:.9s cubic-bezier(.22,.61,.36,1) pluckSoftB}.glow.lit{opacity:1;transition-duration:80ms}.tglow.lit{opacity:1;transition-duration:60ms}.loom.woven .weft{opacity:1;transform:none}.loom.woven .weft:nth-child(2){transition-delay:50ms}.loom.woven .weft:nth-child(3){transition-delay:.1s}.loom.woven .weft:nth-child(4){transition-delay:.15s}.loom.woven .weft:nth-child(5){transition-delay:.2s}.loom.woven .weft:nth-child(6){transition-delay:.25s}.loom.woven .weft:nth-child(7){transition-delay:.3s}.loom.woven .weft:nth-child(8){transition-delay:.35s}.loom.playing .warp{animation:.8s cubic-bezier(.2,.7,.1,1) both warpIn;animation-delay:calc(.1s + var(--i) * .12s)}.loom.playing .thread-amber{animation:1s cubic-bezier(.22,.61,.36,1) 3.3s amberPluck}.loom.playing .weft{animation:.6s cubic-bezier(.2,.7,.1,1) both weftIn,.9s 4.4s forwards weftOut;animation-delay:calc(1.4s + var(--r) * .17s), 4.4s;transition:none}.loom.playing .glow-amber{animation:1.5s ease-in-out 3.2s forwards glowPulse}.loom.playing .loom-word{animation:.8s cubic-bezier(.2,.7,.1,1) 4.8s both wordIn}.loom.playing .thread.pluck-a{animation:.9s cubic-bezier(.22,.61,.36,1) pluckA}.loom.playing .thread.pluck-b{animation:.9s cubic-bezier(.22,.61,.36,1) pluckB}@keyframes warpIn{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes weftIn{0%{opacity:1;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}@keyframes weftOut{to{opacity:0}}@keyframes amberPluck{0%{transform:translate(0)}12%{transform:translate(2.6px)}30%{transform:translate(-2px)}48%{transform:translate(1.3px)}66%{transform:translate(-.7px)}82%{transform:translate(.3px)}to{transform:translate(0)}}@keyframes glowPulse{0%{opacity:0}30%{opacity:1}to{opacity:0}}@keyframes wordIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes pluckA{0%{transform:translate(0)}10%{transform:translate(5px)}28%{transform:translate(-3.8px)}46%{transform:translate(2.4px)}64%{transform:translate(-1.3px)}82%{transform:translate(.5px)}to{transform:translate(0)}}@keyframes pluckB{0%{transform:translate(0)}10%{transform:translate(5px)}28%{transform:translate(-3.8px)}46%{transform:translate(2.4px)}64%{transform:translate(-1.3px)}82%{transform:translate(.5px)}to{transform:translate(0)}}@keyframes pluckSoftA{0%{transform:translate(0)}14%{transform:translate(1.6px)}34%{transform:translate(-1.1px)}56%{transform:translate(.5px)}to{transform:translate(0)}}@keyframes pluckSoftB{0%{transform:translate(0)}14%{transform:translate(1.6px)}34%{transform:translate(-1.1px)}56%{transform:translate(.5px)}to{transform:translate(0)}}.loom-lines{width:100%;display:grid}.loom-lines>p{grid-area:1/1}.loom-woven{font-family:var(--font-display);color:var(--accent);text-align:center;opacity:0;margin:0;font-size:22px;line-height:1;transition:opacity .5s,transform .5s cubic-bezier(.2,.7,.1,1);transform:translateY(6px)}.loom.woven .loom-woven{opacity:1;transition-delay:.35s;transform:none}.loom-hint{letter-spacing:.1em;text-transform:uppercase;color:var(--fg-3);text-align:center;opacity:0;margin:0;font-size:12px;transition:opacity .8s .3s}.loom.is-ready:not(.playing):not(.woven) .loom-hint{opacity:1}.loom.woven .loom-hint{transition-delay:0s}.loom-replay{color:var(--fg-3);cursor:pointer;opacity:0;background:0 0;border:0;border-radius:999px;padding:6px 10px;font-size:13px;transition:opacity .8s .6s}.loom.is-ready:not(.playing) .loom-replay{opacity:1}.loom-replay:hover{color:var(--fg)}@media (max-width:820px){.l-hero{grid-template-columns:1fr;gap:28px;padding:24px 0 40px}.loom{width:min(100%,300px)}.loom-hint-strum{display:none}.l-top{padding:14px 0}.l-foot{flex-direction:column;align-items:flex-start;gap:10px}}@media (max-width:480px){.sound span{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.sound,.theme{justify-content:center;width:44px;height:44px;padding:0}}@media (prefers-reduced-motion:reduce){.loom.playing .warp,.loom.playing .thread-amber,.loom.playing .weft,.loom.playing .glow-amber,.loom.playing .loom-word,.thread.pluck-a,.thread.pluck-b,.thread.soft-a,.thread.soft-b,.loom.playing .thread.pluck-a,.loom.playing .thread.pluck-b,.l-words>*{animation:none!important}.weft,.glow,.tglow,.loom-hint,.loom-woven,.loom-replay,.sound{transition:none!important}}.l-login .l-hero{grid-template-columns:1fr;justify-items:start}.l-form{flex-direction:column;gap:16px;width:min(100%,420px);margin-top:6px;display:flex}.l-field{flex-direction:column;gap:7px;display:flex}.l-field label{letter-spacing:.1em;text-transform:uppercase;color:var(--fg-3);font-size:12px}.l-input{border:1px solid var(--field-border);background:var(--surface);height:50px;color:var(--fg);font:inherit;border-radius:999px;padding:0 20px;font-size:16px}.l-input:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.l-submit{background:var(--pill-bg);height:50px;color:var(--pill-fg);cursor:pointer;border:0;border-radius:999px;align-self:flex-start;padding:0 28px;font-size:16px;font-weight:500}.l-error{color:var(--accent);margin:0;font-size:15px}.l-404{grid-template-rows:auto 1fr auto}.l-404 .l-hero{grid-template-columns:1fr;justify-items:start}.l-404 .l-back{background:var(--pill-bg);color:var(--pill-fg);border-radius:999px;padding:13px 24px;font-weight:500;text-decoration:none;display:inline-block}
