:root{--pine:#173c30;--cream:#fff9e6;--gold:#f2c77e}*{box-sizing:border-box}html,body{margin:0;height:100%;font:16px/1.5 'DM Sans',sans-serif}body{background:#153f30;color:var(--cream)}button,a{font:inherit}button{cursor:pointer}.entry{position:relative;min-height:650px;height:100dvh;overflow:hidden;isolation:isolate}.scenery{position:absolute;inset:-3%;background:url('./landing-village.webp') center 48%/cover no-repeat;animation:drift 24s ease-in-out infinite alternate;z-index:-2}@keyframes drift{to{transform:scale(1.055)}}.shade{position:absolute;inset:0;background:linear-gradient(90deg,#0b2c23f5 0%,#103629e6 31%,#123a2db6 53%,#17362858 76%,#1535278c 100%),linear-gradient(0deg,#071e18ae,transparent 35%);z-index:-1}.entry header{height:87px;padding:14px clamp(24px,5.5vw,96px);display:flex;align-items:center;justify-content:space-between;position:relative;z-index:5}.brand{display:flex;align-items:center;gap:11px;font:700 27px 'Fraunces',Georgia,serif;letter-spacing:-.035em}.brand-mark{width:52px;height:48px;border-radius:11px;background:#fff url('./morivale-logo.png') center/108px 72px no-repeat;box-shadow:0 3px 16px #081d154d}.entry header button{border:1px solid #d4e2cb74;background:#f7f7e620;color:#fff9e8;border-radius:9px;padding:9px 12px;font-size:13px;font-weight:800;backdrop-filter:blur(10px)}.entry header button:hover{background:#f7f7e641}.entry-body{width:min(1450px,100%);height:calc(100% - 134px);margin:auto;padding:10px clamp(24px,6.5vw,112px) 16px;display:grid;grid-template-columns:minmax(0,1fr) minmax(400px,.9fr);align-items:center;gap:10px}.copy{position:relative;z-index:3;padding-bottom:20px}.eyebrow{display:flex;align-items:center;gap:10px;letter-spacing:.22em;color:#e6cf9c;font-size:12px;font-weight:800}.eyebrow i{width:8px;height:8px;background:#efc670;transform:rotate(45deg)}h1{font:700 clamp(65px,7vw,116px)/.98 'Fraunces',Georgia,serif;letter-spacing:-.065em;margin:23px 0 25px;text-shadow:0 6px 25px #0822195c}h1 em{color:#f3cb84;font-weight:500}.copy p{max-width:480px;font-size:clamp(18px,1.55vw,22px);line-height:1.6;color:#e6eee3;margin:0 0 30px}.enter{display:inline-flex;align-items:center;justify-content:space-between;gap:53px;min-width:255px;padding:16px 21px;background:#f1c778;color:#203c2d;text-decoration:none;border-radius:10px;font-size:16px;font-weight:800;box-shadow:0 5px 0 #896643,0 13px 24px #0b251b5c;transition:transform .2s,background .2s}.enter:hover{background:#ffda93;transform:translateY(-4px)}.enter:focus-visible,button:focus-visible{outline:3px solid #fff;outline-offset:4px}.enter.is-entering{transform:scale(.97)}.hint{margin-top:30px;color:#d4e3d3;font-size:12px;font-weight:700;letter-spacing:.02em}.agent-stage{height:min(75vh,660px);min-height:470px;position:relative;display:grid;place-items:center}.sun-disc{position:absolute;width:min(34vw,500px);height:min(34vw,500px);border-radius:50%;background:radial-gradient(circle at 40% 35%,#e3c58294,#a5b6812b 70%);filter:blur(1px);box-shadow:0 0 90px #eacb9855}.agent-stage canvas{width:100%;height:100%;display:block;position:relative;z-index:1;filter:drop-shadow(0 25px 20px #09241d88)}.fallback-agent{display:none;font-size:150px}.agent-caption{position:absolute;z-index:3;right:1%;bottom:13%;display:flex;gap:11px;align-items:center;background:#fff9eae8;color:#34523e;border:1px solid #fff;border-radius:13px;padding:11px 15px;box-shadow:0 9px 25px #0b231764;transform:rotate(3deg)}.caption-spark{color:#c89950;font-size:28px}.agent-caption strong,.agent-caption small{display:block}.agent-caption strong{font:700 19px 'Fraunces',serif}.agent-caption small{font-size:11px;font-weight:800;color:#647c63}.speech{position:absolute;z-index:3;left:12%;top:18%;background:#fff8e8;color:#30543c;padding:10px 14px;border-radius:16px 16px 4px 16px;font-size:13px;font-weight:800;box-shadow:0 7px 22px #0c241b5a;animation:speechFloat 3.3s ease-in-out infinite}@keyframes speechFloat{50%{transform:translateY(-7px)}}.bottom-line{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;padding:14px clamp(24px,5.5vw,96px) 23px;border-top:1px solid #f7f3db52;font-size:11px;font-weight:800;letter-spacing:.16em;color:#ddebd5}@media(max-width:900px){.entry-body{grid-template-columns:1fr minmax(300px,.85fr);padding:10px 30px}.agent-stage{min-height:390px;height:70vh}.agent-caption{bottom:11%;right:0}.speech{left:0}}@media(max-width:700px){.entry{min-height:660px}.entry header{height:68px;padding:10px 19px}.brand{font-size:22px}.brand-mark{width:40px;height:38px;background-size:83px 55px}.entry header button{padding:7px 9px;font-size:12px}.entry-body{height:calc(100% - 102px);display:flex;flex-direction:column;align-items:stretch;gap:0;padding:25px 22px 38px}.copy{padding:0;flex:none}.eyebrow{font-size:10px}h1{font-size:clamp(55px,12vw,73px);margin:12px 0 12px}.copy p{font-size:15px;line-height:1.45;max-width:380px;margin:0 0 17px}.enter{min-width:208px;padding:12px 16px;font-size:14px;min-height:46px}.hint{display:none}.agent-stage{flex:1;min-height:270px;height:auto;width:100%;margin-top:-15px}.sun-disc{width:240px;height:240px}.speech{left:10%;top:6%;font-size:11px;padding:7px 9px}.agent-caption{right:1%;bottom:0;padding:7px 9px}.agent-caption strong{font-size:16px}.agent-caption small{font-size:10px}.bottom-line{padding:10px 20px;font-size:9px}}@media(max-width:390px){h1{font-size:52px}.copy p{font-size:14px}.agent-stage{margin-top:-25px}.speech{top:1%}.agent-caption{bottom:2%}}@media(prefers-reduced-motion:reduce){.scenery,.speech{animation:none}.enter{transition:none}}

.agent-stage canvas{cursor:pointer;touch-action:manipulation}
