/* Motion system: a deliberate entrance, smooth feedback, no blocking splash. */
.scroll-progress{position:fixed;z-index:100;top:0;left:0;width:100%;height:3px;background:var(--green);box-shadow:0 0 12px #a1fb6b80;transform:scaleX(0);transform-origin:left;pointer-events:none}
.site-header{position:sticky;top:0;background:#0b0c0de9;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);transition:box-shadow .25s,border-color .25s}
.site-header.is-scrolled{box-shadow:0 12px 35px #0007;border-color:#354036}
.hero .eyebrow,.hero h1,.hero-tagline,.hero-description,.hero-actions,.hero-social{animation:hero-enter .72s cubic-bezier(.2,.75,.2,1) both}
.hero h1{animation-delay:.08s}.hero-tagline{animation-delay:.18s}.hero-description{animation-delay:.25s}.hero-actions{animation-delay:.32s}.hero-social{animation-delay:.39s}
.hero-art>img{animation:hero-art-enter 1.05s cubic-bezier(.16,1,.25,1) .08s both}
.art-label{animation:note-enter .6s cubic-bezier(.2,.9,.2,1) .65s both}
.larry-title svg path{stroke-dasharray:590;stroke-dashoffset:590;animation:underline-draw .9s cubic-bezier(.65,0,.25,1) .55s forwards}
@keyframes hero-enter{from{opacity:0;transform:translate3d(0,22px,0);filter:blur(5px)}to{opacity:1;transform:translateZ(0);filter:blur(0)}}
@keyframes hero-art-enter{from{opacity:0;transform:translate3d(22px,0,0) scale(1.04)}to{opacity:1;transform:translateZ(0) scale(1)}}
@keyframes note-enter{from{opacity:0;transform:translateY(20px) rotate(-10deg)}to{opacity:1;transform:rotate(-6deg)}}
@keyframes underline-draw{to{stroke-dashoffset:0}}
.ticker-inner{animation:ticker-scroll 28s linear infinite;will-change:transform}
@keyframes ticker-scroll{to{transform:translate3d(-50%,0,0)}}
.ticker:hover .ticker-inner{animation-play-state:paused}
.motion-ready .reveal{opacity:0;transform:translate3d(0,28px,0);transition:opacity .72s cubic-bezier(.2,.75,.2,1),transform .72s cubic-bezier(.2,.75,.2,1);transition-delay:var(--reveal-delay,0ms)}
.motion-ready .reveal.visible{opacity:1;transform:translateZ(0)}
.meme-card{transition:transform .3s cubic-bezier(.2,.8,.2,1)}
@media(hover:hover){.meme-card:hover{transform:translateY(-5px)}.meme-open:hover img{transform:scale(1.04)}.button-green:hover:not(:disabled){box-shadow:0 10px 30px #a1fb6b26}}
.filter,.card-download,.meme-open img{transition:color .24s,background-color .24s,border-color .24s,transform .3s cubic-bezier(.2,.8,.2,1)}
.terminal [role="tabpanel"]:not([hidden]){animation:panel-enter .3s ease both}
@keyframes panel-enter{from{opacity:.2;transform:translateY(6px)}to{opacity:1;transform:none}}
.liquidated-stamp.stamp-flash{animation:stamp-reset .65s cubic-bezier(.2,.9,.2,1)}
@keyframes stamp-reset{0%{opacity:0;filter:blur(4px)}70%{opacity:1;filter:blur(0)}100%{opacity:1}}
.chart-container:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(105deg,transparent 42%,#ff424c08 50%,transparent 58%);background-size:240% 100%;animation:terminal-scan 10s linear infinite}
@keyframes terminal-scan{from{background-position:100% 0}to{background-position:-100% 0}}
dialog[open]{animation:dialog-enter .27s cubic-bezier(.2,.8,.2,1) both}
dialog[open]::backdrop{animation:backdrop-enter .27s ease both}
@keyframes dialog-enter{from{opacity:0;transform:translateY(16px) scale(.985)}to{opacity:1;transform:none}}
@keyframes backdrop-enter{from{opacity:0}to{opacity:1}}
.menu-toggle{width:44px;height:44px;display:none;align-items:center;justify-content:center;flex-direction:column;gap:5px;flex:none}
.menu-toggle span{width:22px;height:2px;border-radius:3px;background:var(--white);display:block;transition:transform .25s ease,opacity .2s ease}
.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(7px) rotate(45deg)}
.menu-toggle[aria-expanded=true] span:nth-child(2){opacity:0}
.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-7px) rotate(-45deg)}
@media(max-width:800px){
 .menu-toggle{display:flex}
 .site-header nav,.site-header nav.open{display:flex;visibility:hidden;opacity:0;pointer-events:none;transform:translateY(-12px);transition:visibility .25s,opacity .25s,transform .25s;gap:0;padding:12px 24px 20px;box-shadow:0 18px 35px #0008}
 .site-header nav.open{visibility:visible;opacity:1;pointer-events:auto;transform:translateY(0)}
 .site-header nav a{display:flex;justify-content:space-between;align-items:center;min-height:48px;border-bottom:1px solid #2b342b;font-size:16px}
 .site-header nav a:last-child{border:0}
}
/* On phones Larry stays in document flow; the actions follow the illustration. */
@media(max-width:700px){
 html{scroll-padding-top:72px}
 .site-header{height:68px;padding-inline:16px}
 .site-header nav{top:67px}
 .header-cta{display:none}
 .menu-toggle{margin-left:auto}
 .wrap{width:calc(100% - 36px)}
 .hero{display:flex;flex-direction:column;align-items:stretch;min-height:0;padding:32px 0 40px;gap:0}
 .hero-copy{display:contents}
 .hero .eyebrow{order:0;font-size:12px;line-height:1.45;letter-spacing:.025em;margin-bottom:16px;max-width:none}
 .hero h1{order:1;font-size:clamp(52px,16.2vw,100px);line-height:.91;white-space:nowrap;letter-spacing:-.025em}
 .larry-title svg{bottom:-11px;height:18px}
 .hero-tagline{order:2;font-size:clamp(18px,5vw,22px);line-height:1.3;margin-top:28px}
 .hero-description{display:none}
 .hero-art{order:3;position:relative;inset:auto;right:auto;bottom:auto;top:auto;width:calc(100% + 36px);height:clamp(245px,72vw,360px);margin:12px -18px 0;opacity:1;overflow:hidden}
 .hero-art>img{object-position:61% 41%;mask-image:linear-gradient(to bottom,black 0%,black 79%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,black 0%,black 79%,transparent 100%);filter:none}
 .hero-art:after{background:linear-gradient(0deg,var(--bg),transparent 22%)}
 .art-label{right:20px;bottom:20px;padding:10px 38px 9px 12px;box-shadow:5px 5px 0 #0007}
 .art-label strong{font-size:25px}.art-label .green{font-size:26px;right:10px;top:13px}
 .hero-actions{order:4;display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:4px}
 .hero-actions .button{min-width:0;min-height:52px;padding:12px 13px;font-size:14px;justify-content:space-between;gap:6px}
 .hero-social{order:5;display:flex;flex-wrap:wrap;justify-content:center;gap:5px 18px;margin-top:15px;font-size:12px}
 .hero-social .tiny{display:block;flex-basis:100%;text-align:center;font-size:12px}.hero-social .divider{display:none}
 .section{padding-block:64px}.section-top{gap:13px;margin-bottom:26px}
 .section-top h2,.lore-copy h2,.community-heading h2,.faq-section h2{font-size:clamp(43px,11vw,60px)}
 .section-aside{font-size:14px}
 .terminal-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:100%}
 .terminal-tabs button{font-size:13px;text-align:left;min-height:67px;justify-content:center;white-space:normal}
 .terminal-tabs span{font-size:11px;margin:0;white-space:nowrap}
 .terminal-stats{gap:12px;padding:18px 14px}.terminal-stats>div{min-width:0;padding-right:3px}
 .terminal-stats strong{font-size:clamp(18px,5.4vw,24px)}.terminal-stats span{font-size:11px;line-height:1.35}
 .chart-container{padding-inline:12px}.chart-container svg{height:190px}
 .liquidated-stamp{left:50%;top:50%;font-size:clamp(30px,9vw,44px);transform:translate(-50%,-50%) rotate(-10deg)}
 .terminal-footer{padding:15px;gap:12px}.terminal-footer p{line-height:1.5}.terminal-footer>div{width:100%;gap:18px}.terminal-footer .text-button{font-size:13px;min-height:38px}
 .terminal-postscript{line-height:1.5}
 .lore-grid{gap:32px}.lore-visual img{height:auto;max-height:390px;min-height:250px;object-fit:contain}
 .gallery-controls{display:flex;flex-direction:column;align-items:stretch;gap:14px;margin-bottom:24px}
 .gallery-controls .search{order:-1;max-width:none;width:100%;min-height:46px}.gallery-controls .search input{font-size:16px}
 .filters{display:flex;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;scrollbar-width:none;margin-inline:-18px;padding-inline:18px;width:calc(100% + 36px);flex:none;gap:7px;-webkit-overflow-scrolling:touch}
 .filters::-webkit-scrollbar{display:none}.filter{font-size:13px;min-height:42px;padding-inline:14px;flex:none}
 .meme-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 12px}.meme-open img{height:auto;aspect-ratio:1/1;object-fit:contain}
 .meme-card-info{align-items:flex-start}.meme-card-info h3{font-size:14px;line-height:1.3}.meme-card-info p{font-size:10px;line-height:1.4}.card-download{width:36px;height:36px}
 .token-panel{padding:20px 16px}.community-section{padding-block:70px}.faq-section{gap:26px}.faq-list summary{min-height:58px;align-items:center;gap:20px}
 .last-word p{font-size:clamp(51px,14vw,91px)}.footer-top{align-items:flex-start}
 dialog[open]{display:flex;flex-direction:column;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;inset:0;border:0;border-radius:0;overscroll-behavior:contain}
 .modal-art{min-height:0;flex:none;overflow:hidden}.modal-art img{width:100%;max-height:55dvh;object-fit:contain}
 .modal-info{padding:22px 20px max(22px,env(safe-area-inset-bottom));flex:none}.modal-info h3{font-size:clamp(31px,9vw,42px)}
 .modal-actions{gap:9px}.modal-actions .button{min-height:46px;font-size:13px}.modal-close{top:max(8px,env(safe-area-inset-top));right:12px;background:#111d}
}
@media(max-width:380px){
 .hero h1{font-size:clamp(47px,15.8vw,60px)}.hero-art{height:245px}.art-label{bottom:15px;right:12px}
 .meme-grid{grid-template-columns:1fr;gap:25px}.meme-card-info h3{font-size:16px}.token-links{flex-wrap:wrap;gap:12px}
 .terminal-tabs{gap:6px}.terminal-tabs button{font-size:12px}.terminal-tabs span{font-size:10px}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}.scroll-progress{box-shadow:none}.motion-ready .reveal{opacity:1;transform:none;transition:none}
 .hero .eyebrow,.hero h1,.hero-tagline,.hero-description,.hero-actions,.hero-social,.hero-art>img,.art-label,.larry-title svg path,.ticker-inner,.chart-container:after,.liquidated-stamp.stamp-flash,dialog[open],dialog[open]::backdrop{animation:none!important;opacity:1!important;filter:none}
 .larry-title svg path{stroke-dashoffset:0}.art-label{transform:rotate(-6deg)}.ticker-inner{transform:none}
}
