.skip-link{position:absolute;top:-100px;left:16px;z-index:100;background:var(--plum);color:var(--cream);padding:12px}.skip-link:focus{top:8px}.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.direction-picture{margin:24px 0;max-width:340px}.direction-picture img{width:100%;height:220px;object-fit:cover}.direction-picture figcaption{padding-top:8px}.stage details{margin:24px 0;border-top:1px solid currentColor;padding-top:16px}.stage summary{cursor:pointer;min-height:44px;font-weight:700}.stage details .field{margin-top:18px}.illustration{font:12px/1.6 Mono;margin-top:16px;max-width:60ch}.kit-swatches{display:flex;gap:8px;margin:20px 0}.kit-swatches i{width:48px;height:48px;background:var(--rose)}.kit-swatches i:nth-child(2){background:var(--cream);border:1px solid var(--plum)}.kit-swatches i:nth-child(3){background:var(--plum);border:1px solid var(--cream)}.rate{border:0;padding:0;margin:24px 0}.rate legend{font-weight:700;font-size:18px;margin-bottom:12px}.rate label{display:flex;align-items:center;gap:12px;min-height:44px;border-bottom:1px solid #735c69}.rate input{width:20px;height:20px;accent-color:var(--rose)}.rate label:last-child{border-bottom:0}.game-tile.selected .caption{color:var(--citron)}.game-tile.selected .caption:after{content:'Selected';font-size:11px}.game-none[aria-pressed=true]{background:var(--cream);color:var(--plum)}.offer-terms{margin-bottom:32px}.stage textarea{font:14px/1.6 Mono;width:100%;resize:vertical;padding:16px;border:1px solid currentColor;background:transparent;color:inherit;margin:12px 0}.stage .toggle{margin:16px 20px 16px 0}.stage[data-step="3"]{max-width:760px}.stage .field-row select{width:100%}.room .checks a{color:var(--cream)}.stage[data-step="7"] .answer-list{margin:28px 0}.room .error{color:#fff4f0}.progress{gap:6px}@media(max-width:600px){.direction-picture{max-width:100%}.direction-picture img{height:200px}.stage .field-row{grid-template-columns:1fr}.signature{max-height:90px}.stage[data-step="4"] .description{font-size:14px}.game-grid{gap:10px}}
.room input,.room select{color:var(--cream);border-color:#D8CFCE}.room input::placeholder{color:#D8CFCE}.room select option{background:var(--plum);color:var(--cream)}.room .toggle{color:var(--cream)}.room .field a{text-decoration:underline}.room .rate input{accent-color:var(--citron)}textarea:focus-visible,summary:focus-visible{outline:3px solid var(--rose);outline-offset:4px}.room summary:focus-visible{outline-color:var(--cream)}.rate input{display:inline-block;margin:0;flex:none}.progress span{width:22px}.stage[data-step="7"] .answer-chip button{display:inline-flex;min-width:44px}.stage[data-step="7"] .answer-chip{display:flex}.stage[data-step="6"] .description{font-size:24px;color:var(--cream)}
/* Long links and multilingual brand words stay inside the paper at every size. */
.imagine-layout>*{min-width:0}.answer-chip>div{min-width:0;overflow-wrap:anywhere}.answer-chip button{flex:none;min-width:44px;min-height:44px}.stage-head{gap:16px}.stage-head>button{flex:none;min-height:44px}.stage :is(h1,p,textarea,.keepsake-title){overflow-wrap:anywhere}.stage-actions{flex-wrap:wrap}.stage-actions .button{max-width:100%}.room .footer-link,.room .imagine-header .micro{color:#D8CFCE}.footer-link .toggle{color:inherit}.field input,.field select{font-size:16px}.checks input{height:20px;min-height:20px}.stage[data-step="7"]>#copy,.stage[data-step="7"]>#clear{margin:8px 12px 8px 0}
@media(max-width:600px){.imagine-header{gap:16px}.imagine-header .micro{font-size:11px}.stage-actions .micro{display:none}.stage .options{gap:0 16px}.option strong{overflow-wrap:anywhere}}

.media-failure{padding:12px;font-size:12px;line-height:1.5;overflow-wrap:anywhere}
/* The complete picture is a keyboard target. Keepsakes wrap at phone widths. */
.game-tile:focus-visible{outline:3px solid var(--citron);outline-offset:6px;border-radius:2px}
.stage[data-step="7"] .answer-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.stage[data-step="7"] .answer-chip{min-width:0;white-space:normal;overflow-wrap:anywhere}
.stage[data-step="7"] .answer-chip>div{min-width:0}
.stage[data-step="7"] #copy,.stage[data-step="7"] #clear{margin:12px 12px 12px 0}
@media(max-width:600px){.stage[data-step="7"] .answer-list{grid-template-columns:1fr}.keepsake-world{grid-template-columns:1fr}.keepsake-title{font-size:34px}}
/* Email and the optional phone each get the full phone-width line. */
@media(max-width:600px){.imagine-layout .stage[data-step="6"] .field-row{grid-template-columns:minmax(0,1fr);gap:0}}
.studio-contact{margin-top:16px;display:flex;flex-wrap:wrap;align-items:center;gap:12px 28px;max-width:100%;overflow-wrap:anywhere}.studio-contact address{font-style:normal;line-height:1.6}.studio-contact .text-link{min-height:44px;display:inline-flex;align-items:center}
