@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,650;9..144,750&display=swap");:root{color-scheme:light;--ink:#19263e;--paper:#faf7ef;--soft:#f2eee4;--line:#d9d1c2;--orange:#e67d48;--orange-dark:#ac4c22;--muted:#5d6772}*{box-sizing:border-box}html{min-height:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:DM Sans,sans-serif}a{color:inherit}::selection{background:#f4b08d;color:var(--ink)}:focus-visible{outline:3px solid var(--orange-dark);outline-offset:4px;border-radius:4px}button{font:inherit}.shell{max-width:1140px;margin:0 auto;padding:22px 36px 64px}.site-header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:19px}.brand{display:inline-flex;align-items:center;gap:11px;font-family:Fraunces,serif;font-weight:750;font-size:25px;letter-spacing:-.03em;text-decoration:none}.brand img{border-radius:11px}.back-link,.nav-link,.section-title>a{font-size:14px;font-weight:700;text-decoration:none;text-underline-offset:4px}.back-link:hover,.nav-link:hover,.section-title>a:hover{text-decoration:underline}.nav-link span{color:var(--orange-dark)}.menu{display:grid;grid-template-columns:1fr .86fr;align-items:center;grid-gap:50px;gap:50px;min-height:450px;padding:40px 0 32px}.menu-copy{max-width:560px}.all-page h1,.dragon-details h1,.menu h1{font-family:Fraunces,serif;font-size:clamp(48px,7vw,85px);letter-spacing:-.035em;line-height:1.02;margin:0 0 22px}.all-page>p,.dragon-details>p,.menu-copy>p{font-size:18px;line-height:1.55;max-width:460px;margin:0 0 26px;color:#435064}.primary-button{background:var(--orange);color:#291b1a;border:2px solid #b9552b;border-radius:14px;box-shadow:0 6px 16px #ad55332b;min-height:58px;padding:13px 21px;font-size:17px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:20px;transition:transform .16s ease,background .16s ease,box-shadow .16s ease}.primary-button:hover{background:#ee9567;transform:translateY(-2px);box-shadow:0 9px 19px #ad553343}.primary-button:disabled{cursor:wait;opacity:.7;transform:none}.primary-button span{font-size:21px}.action-error{color:#902c21;font-size:14px;max-width:370px;line-height:1.4}.dragon-art{position:relative;width:100%;aspect-ratio:1;background:#eee5d4;border:1px solid #e0d1ba;border-radius:32px;overflow:hidden;box-shadow:0 15px 40px #60442220}.dragon-art img{object-fit:cover}.recent{border-top:1px solid var(--line);padding-top:25px;max-width:700px}.section-title{display:flex;justify-content:space-between;align-items:baseline;gap:20px}.section-title h2{font-family:Fraunces,serif;font-size:30px;letter-spacing:-.025em;margin:0 0 17px}.section-title>a{color:var(--orange-dark)}.dragon-list{list-style:none;padding:0;margin:0}.dragon-list li{border-top:1px solid var(--line)}.dragon-list li:last-child{border-bottom:1px solid var(--line)}.dragon-list a{display:flex;align-items:center;gap:16px;padding:13px 5px;text-decoration:none;border-radius:9px}.dragon-list a:hover{background:#f2eadc}.dragon-list img{border-radius:11px;object-fit:cover}.dragon-list small,.dragon-list strong{display:block}.dragon-list strong{font-size:17px}.dragon-list small{font-size:13px;color:var(--muted);margin-top:3px}.arrow{margin-left:auto;font-size:22px;color:var(--orange-dark)}.state{padding:24px;background:var(--soft);border:1px solid var(--line);border-radius:13px;line-height:1.5}.state.error{color:#8b2e23;background:#fff0e9;border-color:#e3a99b}.public-note{color:#526070;font-size:13px;line-height:1.5;max-width:640px;margin:18px 0 0}.back-link{display:inline-block;margin:30px 0}.dragon-screen{display:grid;grid-template-columns:1fr 1fr;grid-gap:55px;gap:55px;align-items:center;padding:8px 0 30px}.full-dragon{position:relative;aspect-ratio:1;background:#eee5d4;border:1px solid #e0d1ba;border-radius:30px;overflow:hidden}.full-dragon img{object-fit:cover}.dragon-details h1{margin-bottom:12px}.dragon-details .meet{font-size:14px;font-weight:700;color:var(--orange-dark);margin:0 0 12px}.dragon-details .saved-message{font-size:15px;color:#35624f;font-weight:700}.text-button{font-weight:700;color:var(--orange-dark);text-underline-offset:5px}.all-page{max-width:760px}.all-page h1{font-size:clamp(46px,6vw,70px);margin-bottom:10px}.all-page>p{margin-bottom:25px}.all-page .public-note{font-size:13px}.dragon-details .create-control{margin:7px 0 22px}.feed-dragon{margin:0 0 22px}.feed-button{display:inline-flex;align-items:center;gap:9px;padding:11px 16px;border:1px solid #b9552b;border-radius:12px;background:#fff4e6;color:var(--ink);font-weight:700;cursor:pointer;min-height:48px}.feed-button:hover{background:#ffe5cc}.feed-button:disabled{opacity:.65;cursor:wait}.feed-dragon p{font-size:14px;margin:9px 0 0}.feed-success{color:#35624f;font-weight:700}.flying-to-dragon{position:fixed;z-index:100;font-size:40px;line-height:1;pointer-events:none;filter:drop-shadow(0 5px 5px #37221c44);will-change:transform,opacity}.tennis-ball{display:inline-block;width:40px;height:40px;flex:none;border-radius:50%;background:radial-gradient(circle at 30% 25%,#d7fa64,#9bc52b 70%,#6b9321);border:1px solid #749c24;box-shadow:inset -4px -5px 6px #486a283b;position:relative;overflow:hidden}.tennis-ball:after,.tennis-ball:before{content:"";position:absolute;top:-7px;width:23px;height:52px;border:3px solid #fffef0;border-radius:50%}.tennis-ball:before{left:-13px}.tennis-ball:after{right:-13px}.tennis-ball-icon{width:19px;height:19px}.tennis-ball-icon:after,.tennis-ball-icon:before{top:-4px;width:12px;height:26px;border-width:2px}.tennis-ball-icon:before{left:-7px}.tennis-ball-icon:after{right:-7px}.flying-to-dragon.tennis-ball{position:fixed}.account-nav{display:flex;align-items:center;gap:22px}.account-nav form{margin:0}.sign-out-button{border:0;background:transparent;color:var(--orange-dark);font-weight:700;font-size:14px;cursor:pointer;padding:9px 0;text-decoration:underline;text-underline-offset:4px}.sign-out-button:hover{color:#783419}.private-note{color:#526070;font-size:13px;line-height:1.5;max-width:640px;margin:18px 0 0}.visitor-entry{display:grid;grid-template-columns:1fr .9fr;align-items:center;grid-gap:55px;gap:55px;padding:50px 0;min-height:510px}.visitor-copy{max-width:560px}.visitor-copy h1{font-family:Fraunces,serif;font-size:clamp(50px,7vw,86px);letter-spacing:-.035em;line-height:1.02;margin:0 0 22px}.visitor-copy p{font-size:18px;line-height:1.55;color:#435064;margin:0 0 26px}.visitor-copy .action-error{font-size:14px;color:#902c21;margin:15px 0}.visitor-dragon{position:relative;aspect-ratio:1;background:#eee5d4;border:1px solid #e0d1ba;border-radius:30px;overflow:hidden}.visitor-dragon img{object-fit:cover}@media(max-width:700px){.account-nav{gap:12px}.sign-out-button{font-size:12px}.visitor-entry{display:flex;flex-direction:column-reverse;align-items:stretch;gap:25px;min-height:0;padding:30px 0}.visitor-dragon{width:100%;max-width:450px;margin:auto;aspect-ratio:1.15}.visitor-copy h1{font-size:50px;margin-bottom:15px}.visitor-copy p{font-size:16px;margin-bottom:22px}}.home-button{display:inline-flex;align-items:center;min-height:44px;padding:9px 16px;margin:22px 0;background:#fff4e6;border:1px solid #c99172;border-radius:11px;color:#853d20;font-weight:700;font-size:14px;text-decoration:none;transition:background .16s ease,transform .16s ease}.home-button:hover{background:#ffe7d0;transform:translateY(-1px)}.list-hint{color:#526070;font-size:14px;line-height:1.5;margin:0 0 15px}.ages-panel{border-top:1px solid var(--line);padding-top:22px;margin:6px 0 26px}.ages-panel h2{font-family:Fraunces,serif;font-size:26px;letter-spacing:-.025em;margin:0 0 5px}.ages-panel>p{font-size:14px;line-height:1.45;color:#526070;margin:0 0 15px}.age-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px}.age-choice{min-height:68px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:3px;padding:10px 12px;border:1px solid #cfc5b5;border-radius:11px;background:#fffdf8;color:var(--ink);text-align:left;cursor:pointer}.age-choice strong{font-size:15px}.age-choice span{font-size:12px;color:#596574}.age-choice.is-selected{border:2px solid #b9552b;background:#fff0dd;padding:9px 11px}.age-choice:disabled{background:#ece8df;color:#69717b;cursor:not-allowed}.ages-panel>.age-progress,.ages-panel>.age-unlocked{margin:11px 0 0;font-size:13px}.ages-panel>.age-unlocked{color:#35624f;font-weight:700}.age-preview{display:flex;align-items:center;gap:16px;min-height:116px;padding:14px;margin-top:15px;border:1px solid #ded3c1;border-radius:15px;background:#f5f0e5}.age-preview-art{width:86px;height:86px;flex:none}.age-preview--young .age-preview-art{width:106px;height:106px}.age-preview--adult .age-preview-art{width:125px;height:125px}.age-preview-art img{width:100%;height:100%;object-fit:cover;border-radius:13px}.age-preview h3{font-family:Fraunces,serif;font-size:23px;letter-spacing:-.02em;margin:0 0 5px}.age-preview p{font-size:13px;line-height:1.45;color:#526070;margin:0}.picture-backup-note{color:#80521f;font-size:14px;line-height:1.45;max-width:440px;margin:0 0 18px}.dragon-stage img{transition:transform .45s cubic-bezier(.2,.8,.2,1),filter .45s ease;transform-origin:39% 52%}.dragon-stage--baby img{transform:scale(1);filter:brightness(1.04) saturate(1.13)}.dragon-stage--young img{transform:scale(1.1);filter:contrast(1.06) saturate(1.05)}.dragon-stage--adult img{transform:scale(1.23);filter:contrast(1.16) saturate(.93) brightness(.96)}.dragon-stage-badge{position:absolute;bottom:16px;left:16px;z-index:1;padding:8px 12px;border:1px solid #bba78c;border-radius:999px;background:#fffaf0eb;color:#382c24;font-size:13px;font-weight:700;box-shadow:0 4px 12px #4b35272b}.age-preview-art{overflow:hidden;border-radius:13px}.age-preview-art img{transition:transform .45s cubic-bezier(.2,.8,.2,1),filter .45s ease}.age-preview--baby img{filter:brightness(1.04) saturate(1.13)}.age-preview--young img{transform:scale(1.08);filter:contrast(1.06) saturate(1.05)}.age-preview--adult img{transform:scale(1.18);filter:contrast(1.16) saturate(.93) brightness(.96)}@media(prefers-reduced-motion:reduce){.age-preview-art img,.dragon-stage img{transition:none}}.play-dragon{margin:-10px 0 22px}.play-button{display:inline-flex;align-items:center;gap:9px;padding:11px 16px;border:1px solid #376a85;border-radius:12px;background:#edf6f6;color:var(--ink);font-weight:700;cursor:pointer;min-height:48px}.play-button:hover{background:#d9eeee}.play-button:disabled{opacity:.65;cursor:wait}.play-dragon p{font-size:14px;margin:9px 0 0}.play-success{color:#35624f;font-weight:700}@media(max-width:700px){.shell{padding:16px 20px 50px}.site-header{padding-bottom:13px}.brand{font-size:21px}.brand img{width:36px;height:36px}.nav-link{font-size:12px}.menu{display:flex;flex-direction:column;align-items:stretch;gap:26px;min-height:0;padding:34px 0 30px}.menu h1{font-size:50px;margin-bottom:15px}.menu-copy>p{font-size:16px;margin-bottom:22px}.dragon-art{max-width:420px;margin:0 auto;aspect-ratio:1.2}.recent{padding-top:22px}.section-title h2{font-size:26px}.dragon-screen{display:flex;flex-direction:column;align-items:stretch;gap:25px;padding-top:0}.full-dragon{width:100%;max-width:450px;margin:auto;aspect-ratio:1.15}.dragon-details h1{font-size:54px}.back-link{margin:21px 0}.all-page h1{font-size:49px}.all-page>p{font-size:16px}}@media(min-width:701px) and (max-width:950px){.dragon-screen{display:flex;flex-direction:column;gap:28px}.full-dragon{width:100%;max-width:500px;margin:auto}.dragon-details{width:100%;max-width:600px;margin:auto}}.choice-group{margin:0 0 20px}.choice-label{font-size:14px;font-weight:700;margin:0 0 10px;color:#435064}.choice-list{display:flex;gap:9px;flex-wrap:wrap}.choice-button{display:flex;align-items:center;gap:8px;min-width:102px;padding:6px 11px 6px 6px;border:2px solid var(--line);border-radius:12px;background:#fffdf8;color:var(--ink);font-size:14px;font-weight:700;cursor:pointer;transition:border-color .15s ease,background .15s ease,transform .15s ease}.choice-button:hover{border-color:var(--orange-dark);transform:translateY(-1px)}.choice-button[aria-pressed=true]{border-color:var(--orange-dark);background:#fff1e8;box-shadow:0 2px 8px #ae653122}.choice-button img{width:43px;height:43px;object-fit:cover;border-radius:7px}.menu .dragon-art{align-self:center}@media(max-width:700px){.choice-list{gap:7px}.choice-button{min-width:0;flex-grow:0;flex-shrink:0;flex-basis:calc((100% - 14px)/3);flex-direction:column;justify-content:center;gap:2px;padding:5px;font-size:13px}.choice-button img{width:36px;height:36px}}.look-group{margin-top:19px}.look-list{display:flex;gap:9px}.look-list button{min-height:42px;padding:8px 15px;border:2px solid var(--line);border-radius:11px;background:#fffdf8;color:var(--ink);font-weight:700;cursor:pointer}.look-list button:hover{border-color:var(--orange-dark)}.look-list button[aria-pressed=true]{border-color:var(--orange-dark);background:#fff1e8}.custom-button{display:block;margin:0 0 17px;padding:0;border:0;background:transparent;color:var(--orange-dark);font-size:15px;font-weight:700;text-decoration:underline;text-underline-offset:4px;cursor:pointer}.custom-button:hover{color:#7d3517}.name-field{max-width:390px;margin:0 0 18px}.name-field label{display:block;font-size:14px;font-weight:700;margin:0 0 7px}.name-field input{display:block;width:100%;min-height:50px;padding:11px 14px;border:2px solid var(--line);border-radius:11px;background:#fffdf8;color:var(--ink);font:inherit;font-size:16px}.name-field input::placeholder{color:#6e7580}.name-field input:focus{border-color:var(--orange-dark)}.name-field small{display:block;margin-top:5px;color:#526070;font-size:12px}.custom-builder{max-width:390px}.builder-group{margin:0 0 16px}.horn-list,.swatch-list{display:flex;gap:7px;flex-wrap:wrap}.horn-list button,.swatch-button{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:37px;padding:6px 9px;background:#fffdf8;border:2px solid var(--line);border-radius:9px;color:var(--ink);font:inherit;font-size:13px;font-weight:700;cursor:pointer}.horn-list button[aria-pressed=true],.swatch-button[aria-pressed=true]{border-color:var(--orange-dark);background:#fff1e8}.color-dot{width:17px;height:17px;border-radius:50%;border:1px solid #19263e55}.custom-builder .name-field{margin-bottom:17px}@media(max-width:700px){.swatch-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.swatch-button{min-width:0}.horn-list button{flex:1 1}}