body{margin:0;font-family:'Instrument Sans',system-ui,sans-serif;background:#F7F4EE;color:#14201F;-webkit-font-smoothing:antialiased}
html{scroll-behavior:smooth}
a{color:#0F6E66;text-decoration:none}a:hover{color:#0B524C}
h1,h2,h3{font-family:'Fraunces','Georgia',serif;font-weight:500;letter-spacing:-0.025em}
@keyframes rise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@keyframes wordin{from{opacity:0;transform:translateY(0.35em) rotate(-2deg)}to{opacity:1;transform:none}}
@keyframes drift{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes orbit{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-40px,30px) scale(1.06)}}
@keyframes orbit2{0%,100%{transform:translate(0,0)}50%{transform:translate(30px,-40px)}}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(15,110,102,0.55)}70%{box-shadow:0 0 0 9px rgba(15,110,102,0)}}
@keyframes ticker{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(8px)}}
@keyframes shine{from{transform:translateX(-120%) skewX(-18deg)}to{transform:translateX(220%) skewX(-18deg)}}
.rise{animation:rise .9s cubic-bezier(.2,.7,.2,1) both}
.wordin{display:inline-block;animation:wordin .55s cubic-bezier(.2,.7,.2,1) both}
.drift{animation:drift 6s ease-in-out infinite}
.orb1{animation:orbit 16s ease-in-out infinite}
.orb2{animation:orbit2 20s ease-in-out infinite}
.pulse{animation:pulse 1.8s ease-out infinite}
.bounce{animation:bounce 1.8s ease-in-out infinite}
.ticker-track{animation:ticker 32s linear infinite}
.ticker:hover .ticker-track{animation-play-state:paused}
.reveal{opacity:0;transform:translateY(32px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
.lift{transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s,border-color .35s}
.lift:hover{transform:translateY(-6px);box-shadow:0 22px 44px rgba(20,32,31,0.16)}
.lift .go{transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.lift:hover .go{transform:translateX(6px)}
.btn{position:relative;overflow:hidden;transition:transform .25s cubic-bezier(.2,.7,.2,1),box-shadow .25s,background-color .25s}
.btn:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(20,32,31,0.18)}
.btn::after{content:"";position:absolute;top:0;left:0;width:40%;height:100%;background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,0.35),rgba(255,255,255,0));transform:translateX(-120%) skewX(-18deg);pointer-events:none}
.btn:hover::after{animation:shine .8s ease}
.prow{transition:background-color .25s,border-color .25s,transform .25s}
.prow:hover{background:#E6F1EF;border-color:#0F6E66;transform:translateX(4px)}
.tile{position:relative;transition:transform .35s cubic-bezier(.2,.7,.2,1),background-color .35s,color .35s,border-color .35s}
.tile:hover{transform:translateY(-6px);background:#14201F;color:#F7F4EE;border-color:#14201F}
.tile:hover svg{stroke:#8FCBC4}
.tile .hint{max-height:0;opacity:0;overflow:hidden;transition:max-height .35s ease,opacity .35s ease,margin-top .35s ease;margin-top:0}
.tile:hover .hint{max-height:24px;opacity:1;margin-top:4px}
.tile .num{position:absolute;top:14px;right:18px;font-size:12px;letter-spacing:.08em;color:#6C736F;transition:color .35s}
.tile:hover .num{color:#8FCBC4}
.row{transition:background-color .35s}
.row:hover{background:#FFFFFF}
.row .row-icon{transition:transform .45s cubic-bezier(.2,.7,.2,1),background-color .35s}
.row:hover .row-icon{transform:rotate(-8deg) scale(1.1);background:#0F6E66}
.row:hover .row-icon svg{stroke:#FFFFFF}
.row .row-icon svg{transition:stroke .35s}
.mark{position:absolute;pointer-events:none}
a:focus-visible{outline:3px solid #14201F;outline-offset:4px}
@media (prefers-reduced-motion:reduce){.rise,.wordin,.drift,.orb1,.orb2,.pulse,.bounce,.ticker-track{animation:none}.reveal{opacity:1;transform:none}html{scroll-behavior:auto}}
html{-webkit-text-size-adjust:100%}
