:root{color:#fffaf0;background:#214d6b;font-family:Arial,Helvetica Neue,sans-serif;font-synthesis:none;--navy: #214d6b;--navy-deep: #16384f;--ink: #18354b;--paper: #fffaf0;--paper-warm: #f5ead7;--paper-line: #d8c4a5;--butter: #ffd76a;--coral: #d96857;--coral-light: #ffad93;--coral-dark: #a94d42;--muted: #536778;--soft-blue: #dfecef;--success: #c6e0b8;--error: #ffe0d5;--error-bg: #813b46}*{box-sizing:border-box}html{min-width:320px;background:var(--navy)}body{min-width:320px;min-height:100vh;margin:0;overflow-x:hidden;background:radial-gradient(circle at 14% 12%,rgba(255,215,106,.2) 0 2px,transparent 3px),radial-gradient(circle at 88% 24%,rgba(255,250,240,.16) 0 1px,transparent 2px),linear-gradient(145deg,#2b6681 0%,var(--navy) 48%,#173c58 100%)}body:before,body:after{position:fixed;pointer-events:none;content:""}body:before{right:-72px;bottom:-64px;width:220px;height:220px;border:1px solid rgba(255,250,240,.16);transform:rotate(45deg)}body:after{top:18%;left:8%;width:6px;height:6px;background:var(--butter);box-shadow:13px 0 #ffd76aa6,0 13px #ffd76a66}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button,a{cursor:pointer}svg{display:block}.page-shell{position:relative;z-index:1;width:min(calc(100% - 32px),1080px);min-height:100vh;margin:0 auto;padding:clamp(22px,4vw,42px) 0 34px}.site-header{display:flex;align-items:center;justify-content:space-between;gap:20px}.brand,.header-link{color:var(--paper);text-decoration:none}.brand{display:inline-flex;align-items:center;gap:11px;font-size:clamp(.76rem,1.5vw,.94rem);font-weight:800;letter-spacing:.12em}.brand:hover,.header-link:hover{color:var(--butter)}.brand-mark{display:grid;grid-template-columns:repeat(2,5px);grid-template-rows:repeat(2,5px);gap:3px;width:13px;height:13px}.brand-mark i{display:block;background:var(--butter)}.brand-mark i:nth-child(2){background:var(--coral)}.brand-mark i:nth-child(3){background:var(--paper)}.header-note,.header-link{margin:0;font-size:.78rem;line-height:1.4}.header-note{color:#fffaf0bd}.header-link{border-bottom:1px solid rgba(255,250,240,.45)}.postcard-layout{display:grid;justify-items:center;width:min(100%,760px);margin:clamp(54px,9vh,90px) auto 0}.postcard-intro{width:min(100%,650px);text-align:center}.eyebrow,.card-kicker{margin:0;font-size:.7rem;font-weight:800;letter-spacing:.14em;line-height:1.5}.eyebrow{color:var(--butter)}.card-kicker{color:var(--coral-dark)}h1,h2,p{overflow-wrap:anywhere}h1,h2{font-family:Georgia,Times New Roman,serif}h1{margin:17px 0 15px;color:var(--paper);font-size:clamp(2.65rem,7vw,5.1rem);font-weight:700;letter-spacing:-.055em;line-height:.98}h1 em,h2 em{color:var(--butter);font-style:normal}.lead{max-width:54ch;margin:0;color:#fffaf0e0;font-size:clamp(1rem,1.7vw,1.14rem);line-height:1.65}.postcard-intro .lead{margin-right:auto;margin-left:auto}.local-note{display:inline-flex;align-items:flex-start;gap:9px;max-width:48ch;margin:22px auto 0;color:#fffaf0b8;font-size:.8rem;line-height:1.5;text-align:left}.local-note svg{flex:0 0 auto;width:18px;height:18px;fill:var(--butter)}.postcard{position:relative;width:100%;color:var(--ink);border:1px solid var(--paper-line);background:var(--paper);box-shadow:0 15px #0c23331f,0 22px 40px #081b2826}.form-card{max-width:680px;margin-top:38px;padding:clamp(24px,5vw,46px)}.postcard:before,.postcard:after{position:absolute;width:14px;height:14px;border-color:var(--coral);content:""}.postcard:before{top:13px;left:13px;border-top:2px solid;border-left:2px solid}.postcard:after{right:13px;bottom:13px;border-right:2px solid;border-bottom:2px solid}.postcard-rule{width:100%;height:1px;margin-bottom:26px;background:repeating-linear-gradient(90deg,var(--coral) 0 9px,transparent 9px 15px);opacity:.72}.card-heading{max-width:48ch}.card-heading h2{margin:10px 0 8px;color:var(--ink);font-size:clamp(1.65rem,4vw,2.25rem);line-height:1.08}.card-heading p:last-child{margin:0;color:var(--muted);font-size:.94rem;line-height:1.55}form{display:grid;gap:24px;margin-top:30px}.field-block{display:grid;gap:8px}label{display:flex;align-items:baseline;justify-content:space-between;gap:16px;color:var(--ink);font-size:.94rem;font-weight:700;line-height:1.35}.field-count{color:var(--coral-dark);font-size:.76rem;font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:.04em;white-space:nowrap}.field-count[data-complete=true]{color:#347456}input{width:100%;min-height:54px;padding:12px 14px;color:var(--ink);border:1px solid #9db1b8;border-radius:4px;outline:0;background:#fff;font-size:1.05rem}input::placeholder{color:#73838b}input:hover{border-color:var(--navy)}input:focus{border-color:var(--navy);box-shadow:0 0 0 3px #ffd76ab8}.field-hint{margin:0;color:var(--muted);font-size:.8rem;line-height:1.45}.form-error{margin:-4px 0 0;color:var(--coral-dark);font-size:.92rem;line-height:1.5}.play-page #game-error{padding:14px 16px;color:var(--paper);border:1px solid var(--coral-light);border-radius:4px;background:var(--error-bg);box-shadow:4px 4px #0c23332e;font-weight:700}.primary-button,.secondary-button,.text-link{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:13px 18px;border:1px solid transparent;border-radius:4px;font-size:.91rem;font-weight:800;letter-spacing:.045em;line-height:1.2;text-align:center;text-decoration:none;transition:color .18s ease,background-color .18s ease,border-color .18s ease,box-shadow .18s ease,opacity .18s ease}.primary-button{gap:13px;color:var(--ink);background:var(--butter);box-shadow:4px 4px 0 var(--coral)}.primary-button:hover:not(:disabled){background:#ffe49a;box-shadow:5px 5px 0 var(--coral)}.primary-button:active:not(:disabled){box-shadow:2px 2px 0 var(--coral);transform:translate(2px,2px)}.primary-button:disabled{cursor:wait;opacity:.6}.secondary-button{gap:11px;color:var(--paper);border-color:#fffaf08c;background:transparent}.secondary-button:hover:not(:disabled){color:var(--ink);border-color:var(--butter);background:var(--butter)}.secondary-button:disabled{cursor:wait;opacity:.6}.button-icon{width:19px;height:19px;fill:none;stroke:currentColor;stroke-linecap:square;stroke-linejoin:miter;stroke-width:2.2}.primary-button .button-icon{fill:currentColor;stroke:none}a:focus-visible,button:focus-visible,input:focus-visible,[tabindex="-1"]:focus-visible{outline:3px solid var(--butter);outline-offset:4px}.page-footer{display:flex;justify-content:space-between;gap:18px;margin-top:52px;color:#fffaf09e;font-size:.66rem;font-weight:700;letter-spacing:.12em}.play-page{max-width:1080px}.play-page .site-header{margin-bottom:clamp(46px,8vh,76px)}.present-header{max-width:820px;margin:0 auto;text-align:center}.present-title{margin:15px 0 12px;font-size:clamp(2.4rem,6vw,4.7rem);line-height:.99;overflow-wrap:anywhere;white-space:normal}.title-line{display:block}.title-greeting{display:flex;align-items:baseline;justify-content:center;flex-wrap:wrap;gap:.2em}.title-label{color:var(--paper)}.present-dad-name{margin-left:.12em;color:var(--coral-light)}.title-emphasis{color:var(--butter)}.present-header .lead{margin:0 auto}.present-children-name{display:inline;padding:.04em .14em;color:var(--butter);font-weight:800;border-radius:2px;background:#ffd76a1f}.stage-heading{display:flex;align-items:center;gap:14px;width:min(100%,840px);margin:36px auto 13px;color:#fffaf0bd}.stage-heading p{flex:0 0 auto;margin:0;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}.stage-line{height:1px;flex:1 1 auto;background:#fffaf042}.emulator-frame{position:relative;width:min(100%,960px);aspect-ratio:4 / 3;min-height:0;margin:0 auto;overflow:hidden;border:2px solid var(--paper);background:var(--navy-deep);box-shadow:0 12px #0c23332e,0 22px 34px #081b282e}.emulator-frame:before,.emulator-frame:after{position:absolute;z-index:2;width:11px;height:11px;border-color:var(--butter);pointer-events:none;content:""}.emulator-frame:before{top:11px;left:11px;border-top:2px solid;border-left:2px solid}.emulator-frame:after{right:11px;bottom:11px;border-right:2px solid;border-bottom:2px solid}.emulator-placeholder,.emulator-host{width:100%;height:100%;min-height:0}.emulator-placeholder{display:grid;place-content:center;justify-items:center;gap:11px;padding:24px;color:var(--paper);text-align:center}.emulator-placeholder p{margin:0;font-size:clamp(.96rem,1.8vw,1.18rem);line-height:1.45}.pixel-seal{width:18px;height:18px;background:var(--butter);box-shadow:8px 0 0 var(--coral),0 8px 0 var(--coral),8px 8px 0 var(--butter);transform:rotate(45deg) scale(.72)}.action-row{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) minmax(0,1fr);gap:12px;width:min(100%,960px);margin:26px auto 0}.action-row .primary-button,.action-row .secondary-button,.action-row .text-link{width:100%}.text-link{color:var(--paper);border-color:#fffaf06b}.text-link:hover{color:var(--butter);border-color:var(--butter)}.share-feedback{min-height:1.5em;margin:16px 0 0;color:var(--success);font-size:.88rem;text-align:center}.invalid-present{max-width:680px;margin:clamp(44px,9vh,86px) auto 0;padding:clamp(26px,6vw,48px)}.invalid-present h1{color:var(--ink);font-size:clamp(2.4rem,6vw,4.4rem)}.invalid-present h1 em{color:var(--coral-dark)}.invalid-present .lead{color:var(--muted)}.invalid-present .primary-button{width:min(100%,300px);margin-top:27px}#game-present[data-state=error] .emulator-frame{border-color:var(--coral)}#game-present[data-state=error] .pixel-seal{background:var(--coral);box-shadow:8px 0 0 var(--paper),0 8px 0 var(--paper),8px 8px 0 var(--coral)}#game-present[data-state=playing] .emulator-frame{border-color:var(--butter)}@media(max-width:640px){.page-shell{width:min(calc(100% - 24px),1080px);padding-bottom:24px}.site-header{align-items:flex-start}.header-note{max-width:110px;text-align:right}.header-link{font-size:.74rem}.postcard-layout{margin-top:48px}h1{font-size:clamp(2.45rem,13vw,3.7rem)}.local-note{margin-top:19px}.form-card{margin-top:32px;padding:24px 18px}.card-heading h2{font-size:1.7rem}.primary-button,.secondary-button,.text-link{min-height:52px}.page-footer{align-items:flex-start;flex-direction:column;margin-top:40px;font-size:.58rem}.play-page .site-header{margin-bottom:42px}.present-title{margin-top:13px;font-size:clamp(2.1rem,11vw,3.5rem)}.title-greeting{gap:.16em}.present-dad-name{margin-left:.08em}.stage-heading{gap:9px;margin-top:29px}.stage-heading p{font-size:.65rem;text-align:center}.action-row{grid-template-columns:1fr;width:100%;margin-top:22px}.invalid-present{margin-top:38px;padding:25px 19px}}@media(min-width:900px){.primary-button,.secondary-button,.text-link{min-height:56px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
