
/* Responsive layout, touch devices and narrow tablets. */
html { -webkit-text-size-adjust:100%; }
body { overflow-x:clip; }
main,section,.about-text,.story-copy,.contacts-copy { min-width:0; }
#limone-animation { aspect-ratio:800 / 550; }
@media(max-width:900px) {
 :root { --edge:clamp(20px,5vw,36px); }
 .hero { min-height:480px; }
 .hero-runway { height:120svh; }
 .hero-copy { top:22%; }
 h1 { font-size:clamp(28px,5.9vw,52px); line-height:1.12; }
 .descriptor { font-size:11px; }
 .about-layout,.story-layout,.limone-section .story-layout { grid-template-columns:minmax(0,1fr); gap:28px; }
 .next { padding-top:0; }
 .about-text { padding:48px 0 0; }
 .about-text h2 { font-size:clamp(34px,6vw,48px); }
 .about-copy { max-width:none; font-size:16px; line-height:1.65; margin-top:24px; }
 .about-layout .lo-scene { width:100%; max-width:420px; margin:0 auto; }
 .story-section,.limone-section { min-height:0; padding:48px var(--edge); }
 .story-layout,.limone-section .story-layout { margin-top:0; }
 .story-copy h2 { font-size:clamp(33px,6vw,48px); margin-bottom:24px; }
 .story-copy > p { font-size:16px; line-height:1.65; }
 .motion-slot { width:100%; max-width:440px; margin:0 auto; }
 #limone-animation { width:calc(100% + 2 * var(--edge)); max-width:640px; margin:0 calc(-1 * var(--edge)); }
 .services { padding:48px var(--edge); }
 .services-layout { grid-template-columns:minmax(0,1fr); gap:24px; margin-top:0; }
 .services-aside { display:contents; }
 .services-aside h2 { font-size:clamp(36px,7vw,52px); }
 .services-aside h2 br { display:none; }
 .services-lead { margin:0; }
 .door-scene { position:sticky; top:0; height:min(210px,28svh); margin:0; z-index:5; background:var(--paper); }
 .door-scene .little-door { transform:scale(.8); bottom:10px; }
 .services-list li { grid-template-columns:42px minmax(0,1fr); gap:14px; padding:23px 0; }
 .services-list h3 { font-size:25px; }
 .service-egg { width:42px; height:70px; }
 .portfolio { padding:48px 0 32px; }
 .portfolio h2 { margin:0; font-size:clamp(34px,6.5vw,48px); }
 .gl-scene { margin-top:20px; }
 .contacts-section { min-height:0; padding:48px var(--edge) 24px; }
 .contacts-layout { min-height:0; padding-bottom:0; margin-right:calc(-1 * var(--edge)); }
 .contacts-copy { width:100%; padding:0 var(--edge) 24px 0; }
 .contacts-copy h2 { font-size:clamp(36px,7.2vw,54px); }
 .contacts-copy p { font-size:17px; }
 .contacts-copy h2 br { display:none; }
 .contacts-layout .gq-scene { position:relative; inset:auto; width:100%; height:330px; }
 .contact-links { margin-top:24px; }
 .contact-links a { min-height:48px; font-size:22px; }
 .contacts-footer { margin-top:12px; align-items:center; }
 .contacts-footer a { padding:12px 0; }
 .goose-easter-egg { margin-top:32px; }
}
@media(max-width:380px) {
 .wordmark { font-size:22px; }
 .descriptor { font-size:10px; letter-spacing:0; }
 h1 { font-size:27px; }
 .hero-copy { top:23%; }
 .story-copy h2,.contacts-copy h2 { font-size:34px; }
 .services-aside h2 { font-size:36px; }
}
@media(max-height:500px) and (orientation:landscape) {
 .hero { min-height:420px; }
 .door-scene { position:relative; }
}

/* Portfolio: a compact band with direct manipulation of the logo strip. */
.portfolio { padding-top:42px; padding-bottom:24px; }
.portfolio h2 { margin-top:0; font-size:clamp(32px,3.4vw,50px); }
.portfolio h2 br { display:none; }
.gl-scene { margin-top:0; cursor:grab; touch-action:pan-y; }
.gl-scene.is-dragging { cursor:grabbing; }
.gl-toggle { width:auto; height:auto; min-width:56px; min-height:36px; padding:8px 12px; font:12px Arial,sans-serif; border-radius:0; top:8px; }
.contact-links { display:flex; flex-wrap:wrap; gap:12px 28px; }
.contact-links a { font-size:clamp(18px,1.7vw,25px); }

.contacts-footer { flex-wrap:wrap; }
.legal-links { flex-basis:100%; display:flex; flex-wrap:wrap; gap:12px 20px; align-items:center; margin-top:8px; }
.legal-links button { color:inherit; font:inherit; background:none; border:0; padding:12px 0; cursor:pointer; text-decoration:underline; }

.footer-business { min-width:0; font-size:12px; line-height:1.7; overflow-wrap:anywhere; }
.footer-business strong { font-size:13px; color:var(--ink); }
.footer-business p { margin:5px 0; }
.footer-business address { font-style:normal; }
.contacts-footer { align-items:flex-start; }

.meta-problems { padding-left:1.2em; margin:0 0 26px; color:var(--muted); font-size:clamp(16px,1.3vw,19px); line-height:1.65; }
.meta-problems li { padding:0 0 8px 4px; }
@media(min-width:901px) { .about-layout .lo-scene { align-self:center; } }

.limone-text-link { text-decoration:underline; text-underline-offset:4px; }
.gb-goose .limone-goose-link { position:absolute; left:-357px; top:-798px; width:714px; height:798px; display:block; z-index:10; cursor:pointer; border-radius:40%; }
.gb-goose .limone-goose-link:focus-visible { outline:6px solid #9b7c35; outline-offset:8px; }

/* Editorial emphasis and a compact service index, without bullet markers. */
.about-copy p { margin-bottom:23px; }
.about-copy strong,.meta-help .story-copy strong { font-weight:700; }
.meta-help h2 strong { font-weight:600; }
.meta-problems { list-style:none; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:28px; margin:28px 0 32px; }
.meta-problems li { padding:14px 0 17px; border-top:1px solid var(--line); }
.meta-problems strong { display:block; color:var(--ink); font-size:17px; margin-bottom:4px; }
.meta-problems span { display:block; font-size:15px; line-height:1.5; }
.limone-section .story-copy > p,.limone-section .story-copy .story-closing { color:var(--muted); }
@media(max-width:420px) { .meta-problems { grid-template-columns:1fr; } }
