
@font-face{font-family:Mirage;src:url('assets/made-mirage-n4.woff2') format('woff2');font-weight:400;font-display:swap}
:root{--paper:#f8f5ee;--ink:#343b2d;--muted:#656857;--line:#c8c8ba;--accent:#4c563c;--soft:#eaece1;--ease:cubic-bezier(.16,1,.3,1)}
*{box-sizing:border-box}body{margin:0;font-family:Mirage,Georgia,serif;color:var(--ink);background:var(--paper);font-weight:400;line-height:1.5}button,input,textarea{font:inherit;color:inherit}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-underline-offset:5px}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:5px}::selection{background:#d6ddc5;color:#24301f}input,textarea{caret-color:var(--accent)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-thumb{background:var(--line)}[hidden]{display:none!important}
.shell{min-height:100svh;display:grid;grid-template-columns:43% 57%}.photo-panel{position:sticky;top:0;height:100svh;background:#6d745e;overflow:hidden}.photo-panel img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:54% center;transition:opacity 1.15s var(--ease),transform 7s linear;transform:scale(1.015)}.photo-panel img.changing{opacity:0;transform:scale(1.06)}.photo-shade{position:absolute;inset:0;background:linear-gradient(180deg,#15201030,transparent 35%,#15201085)}.photo-brand{position:absolute;top:38px;left:38px;right:30px;color:#fffdf4;font-size:13px;letter-spacing:.19em;text-transform:uppercase;line-height:1.6}.photo-caption{position:absolute;bottom:40px;left:38px;right:35px;color:#fffdf4}.photo-caption p{font-size:clamp(32px,3.1vw,49px);line-height:1.15;max-width:390px;margin:0 0 20px;text-wrap:balance}.photo-caption span{font-size:11px;letter-spacing:.19em;text-transform:uppercase}.photo-index{position:absolute;bottom:40px;right:32px;color:#fffdf4;font-size:12px;letter-spacing:.12em}
.workspace{min-width:0;display:flex;flex-direction:column;min-height:100svh}.topbar{padding:35px 7%;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:11px;letter-spacing:.12em;text-transform:uppercase}.topbar a{text-decoration:none;display:inline-flex;align-items:center;gap:9px}.topbar svg{width:15px;height:15px}.topbar span{color:var(--muted)}.progress-wrap{margin:0 7%;height:2px;background:var(--line);overflow:hidden}.progress{height:100%;width:0;background:var(--accent);transition:width .7s var(--ease)}
.stage-wrap{flex:1;display:flex;flex-direction:column;justify-content:center;padding:55px 10% 50px}.stage{max-width:650px;width:100%;margin:auto;position:relative}.stage.entering{animation:arrive .65s var(--ease) both}.stage.backward{animation-name:arriveBack}.step-meta{margin:0 0 27px;display:flex;align-items:center;justify-content:space-between;font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);font-variant-numeric:tabular-nums}.step-meta:empty{display:none}h1{font-size:clamp(38px,4.5vw,65px);line-height:1.08;letter-spacing:-.025em;font-weight:400;margin:0;max-width:650px;text-wrap:balance}h1:focus{outline:none}.welcome h1{font-size:clamp(48px,5.5vw,80px);max-width:630px}.description{font-size:17px;line-height:1.7;letter-spacing:.025em;color:var(--muted);margin:24px 0 35px;max-width:490px}.welcome .description{margin-bottom:40px}.welcome-note{font-size:12px;letter-spacing:.06em;margin:24px 0 0;color:var(--muted)}.welcome-note span{display:block;margin-top:7px}.cta{border:1px solid var(--ink);background:var(--ink);color:var(--paper);min-height:56px;padding:16px 28px;display:inline-flex;gap:40px;justify-content:space-between;align-items:center;letter-spacing:.11em;text-transform:uppercase;font-size:12px;transition:background .2s,transform .3s var(--ease)}.cta:hover{background:#4c563c;transform:translateY(-2px)}.cta:active{transform:translateY(0)}.cta svg{width:22px;height:18px;flex-shrink:0}.actions{display:flex;gap:20px;align-items:center;margin-top:32px;flex-wrap:wrap}.text-button{background:none;border:0;padding:12px 0;font-size:13px;color:var(--muted);text-decoration:underline;text-underline-offset:5px}.back{display:inline-flex;align-items:center;gap:7px;text-decoration:none}.back svg{width:17px;height:17px}.keyboard{font-size:11px;color:var(--muted);letter-spacing:.06em}.field-label{display:block;font-size:12px;letter-spacing:.1em;margin-bottom:12px;text-transform:uppercase}.answer-field{margin-top:35px}.answer-field input:not([type=checkbox]),textarea{display:block;width:100%;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;font-size:28px;line-height:1.4;padding:14px 0;outline:none;box-shadow:none;transition:border-color .25s}.answer-field input:focus,textarea:focus{border-bottom-color:var(--accent);border-bottom-width:2px}input::placeholder,textarea::placeholder{color:#777b6e;opacity:1;font-size:24px}input[type=date]{min-height:60px}textarea{font-size:22px;min-height:155px;resize:vertical}textarea::placeholder{font-size:19px}.error{color:#8b3429;font-size:14px;min-height:24px;margin:12px 0 0}.error:not(:empty){animation:nudge .3s ease-out}.choices{display:grid;gap:9px;margin-top:30px}.choice{display:flex;align-items:center;gap:16px;border:1px solid var(--line);padding:15px 18px;cursor:pointer;min-height:56px;transition:background .2s,border-color .2s;position:relative}.choice:hover{background:#eeeee4}.choice:has(input:checked){background:var(--soft);border-color:var(--accent)}.choice input{accent-color:var(--accent);width:18px;height:18px;flex-shrink:0;margin:0;cursor:pointer}.choice input:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.choice .name{font-size:17px}.choice .letter{font-size:11px;margin-left:auto;color:var(--muted);font-variant-numeric:tabular-nums}.source-choices{grid-template-columns:1fr 1fr}.source-choices .choice{padding:13px}.source-choices .name{font-size:15px}.source-choices .letter{display:none}.bottom{padding:20px 7% 25px;display:flex;align-items:center;justify-content:space-between;gap:20px;color:var(--muted);font-size:10px;letter-spacing:.08em}.chapter{font-size:11px;letter-spacing:.12em;text-transform:uppercase}.review-list{margin-top:35px}.review-row{display:grid;grid-template-columns:1fr auto;gap:12px;padding:15px 0;border-bottom:1px solid var(--line)}.review-row .label{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin:0 0 7px}.review-row .value{font-size:17px;white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.review-row button{border:0;background:none;text-decoration:underline;text-underline-offset:4px;font-size:12px;align-self:start;padding:8px 0 8px 15px}.review h1{font-size:48px}.review .description{font-size:15px;margin-bottom:20px}.done h1{font-size:60px}.done .description{font-size:18px}.restart{display:block;margin-top:20px}.finish-mark{width:55px;height:55px;border:1px solid var(--accent);border-radius:50%;display:grid;place-items:center;margin-bottom:30px;animation:stamp .8s var(--ease)}.finish-mark svg{width:25px;height:25px}.noscript{padding:40px}.noscript a{color:var(--ink)}
@keyframes arrive{from{opacity:.1;transform:translateY(25px);filter:blur(5px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}@keyframes arriveBack{from{opacity:.1;transform:translateX(-22px);filter:blur(4px)}to{opacity:1;transform:translateX(0);filter:blur(0)}}@keyframes nudge{0%,100%{transform:translateX(0)}35%{transform:translateX(5px)}70%{transform:translateX(-3px)}}@keyframes stamp{from{transform:scale(.7) rotate(-15deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}
@media(min-width:1600px){.stage-wrap{padding-left:12%;padding-right:12%}}@media(max-width:1050px){.shell{grid-template-columns:38% 62%}.stage-wrap{padding:45px 8%}.photo-brand{left:25px;font-size:11px}.photo-caption{left:25px}.photo-caption p{font-size:32px}.photo-index{display:none}.keyboard{display:none}.topbar{padding:27px 7%}.topbar span{font-size:10px}.choice{padding:12px 15px}}
@media(max-width:700px){.shell{display:block}.photo-panel{height:210px;position:relative}.photo-panel img{object-position:center 46%}.photo-brand{top:23px;left:23px;font-size:10px}.photo-caption{left:23px;bottom:23px;right:23px}.photo-caption p{font-size:28px;max-width:270px;margin-bottom:0}.photo-caption span{display:none}.workspace{min-height:calc(100svh - 210px)}.topbar{padding:22px 7%;font-size:10px}.topbar span{font-size:9px}.stage-wrap{padding:35px 7% 35px;justify-content:flex-start}.stage{margin:0 auto}.welcome h1{font-size:48px;max-width:400px}.description{font-size:16px;margin:20px 0 25px}.welcome .description{margin-bottom:28px}h1{font-size:37px;line-height:1.1}.step-meta{margin-bottom:24px;font-size:10px}.answer-field{margin-top:25px}.answer-field input:not([type=checkbox]){font-size:25px}.cta{min-height:53px;padding:15px 23px;gap:25px}.actions{margin-top:22px;gap:18px}.bottom{padding-top:10px;font-size:9px}.source-choices{grid-template-columns:1fr 1fr}.source-choices .choice{padding:11px 9px;gap:8px}.source-choices .name{font-size:14px}.review h1,.done h1{font-size:42px}.chapter{font-size:9px}.welcome-note{font-size:11px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Motion pass: photographic page-turns and responsive answer feedback. */
.photo-panel{isolation:isolate}.photo-panel::after{content:'';position:absolute;inset:0;background:var(--paper);z-index:4;transform-origin:top;pointer-events:none;animation:openShutter 1.15s cubic-bezier(.76,0,.24,1) both}
.photo-panel .photo-shade{z-index:1;pointer-events:none}.photo-brand,.photo-caption,.photo-index{z-index:2}
.photo-brand{animation:brandIn 1s var(--ease) .35s both}.photo-caption{animation:captionIn 1.15s var(--ease) .55s both}
.photo-panel .photo-layer{z-index:0;transform:none;transition:none;will-change:clip-path,transform}
.progress{width:100%!important;transform:scaleX(0);transform-origin:left;transition:transform .75s var(--ease);position:relative}
.stage.entering,.stage.backward{animation:none}.word-reveal{display:inline-block;will-change:transform;transform-origin:bottom left}
.choice{overflow:hidden;isolation:isolate;transition:border-color .25s,background .25s,transform .3s var(--ease)}
.choice::before{content:'';position:absolute;inset:0;background:#dce3cc;z-index:-1;transform:scaleX(0);transform-origin:left;transition:transform .38s var(--ease)}
.choice:has(input:checked)::before{transform:scaleX(1)}.choice:has(input:checked){background:transparent}
.choice:active{transform:scale(.987)}.choice .name{transition:transform .3s var(--ease)}.choice:has(input:checked) .name{transform:translateX(3px)}
.cta{overflow:hidden;position:relative;isolation:isolate}.cta::before{content:'';position:absolute;inset:0;background:#596547;z-index:-1;transform:translateX(-102%);transition:transform .45s var(--ease)}
.cta:hover::before{transform:translateX(0)}.cta svg{transition:transform .35s var(--ease)}.cta:hover svg{transform:translateX(5px)}
.answer-field{position:relative}.answer-field::after{content:'';position:absolute;bottom:0;left:0;width:100%;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}.answer-field:focus-within::after{transform:scaleX(1)}
.workspace{overflow:hidden}.stage-wrap{perspective:1000px}.question .actions .cta{min-width:180px}
@keyframes openShutter{0%{transform:scaleY(1)}100%{transform:scaleY(0)}}
@keyframes brandIn{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}
@keyframes captionIn{from{opacity:0;transform:translateY(22px);filter:blur(4px)}to{opacity:1;transform:none;filter:blur(0)}}
@media(prefers-reduced-motion:reduce){.photo-panel::after{display:none}.word-reveal{will-change:auto}.choice:active,.choice:has(input:checked) .name,.cta:hover,.cta:hover svg{transform:none}.choice::before{transition:none}}


/* Mobile welcome: photo retained, start action visible in the first screen. */
@media(max-width:700px){
.photo-panel{height:clamp(150px,24svh,185px)}
.photo-brand{top:17px;left:22px;font-size:9px}
.photo-caption{left:22px;bottom:16px}.photo-caption p{font-size:24px;line-height:1.08}
.workspace{min-height:calc(100svh - clamp(150px,24svh,185px))}
.topbar{padding:15px 7%;white-space:nowrap}.topbar>span{display:none}
.stage-wrap{padding:27px 7% 24px}
.welcome h1{font-size:clamp(31px,8.5vw,36px);line-height:1.12;letter-spacing:-.02em;max-width:360px;text-wrap:pretty}
.welcome .description{font-size:15px;line-height:1.55;margin:17px 0 23px;max-width:34ch}
.welcome>.cta{display:flex;width:100%;justify-content:space-between;min-height:56px;font-size:12px}
.welcome-note{font-size:10px;line-height:1.5;margin-top:15px}
body[data-screen=welcome] .topbar,body[data-screen=welcome] .progress-wrap{display:none}
body[data-screen=welcome] .stage-wrap{flex:1;justify-content:center;padding-top:25px;padding-bottom:20px}
body[data-screen=welcome] .bottom{padding:8px 7% 16px}
body[data-screen=welcome] .chapter{display:none}
}
@media(max-width:700px) and (max-height:620px){
body[data-screen=welcome] .stage-wrap{justify-content:flex-start;padding-top:20px}
.welcome h1{font-size:30px}.welcome .description{margin:12px 0 18px;font-size:14px}
.welcome-note{margin-top:10px}.welcome>.cta{min-height:52px}
}


/* On phones the photograph introduces the experience, then gives way to the task. */
@media(max-width:700px){
.photo-panel{transition:height .55s var(--ease),opacity .35s ease;}
body:not([data-screen=welcome]) .photo-panel{height:0;opacity:0;pointer-events:none;visibility:hidden;transition:height .55s var(--ease),opacity .25s ease,visibility 0s .55s;}
body:not([data-screen=welcome]) .workspace{min-height:100svh;}
body:not([data-screen=welcome]) .stage-wrap{padding-top:25px;}
}


@media(max-width:700px){
.question .choices{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:23px}
.question .choice{min-height:52px;padding:10px;gap:9px}
.question .choice .name{font-size:15px}.question .choice .letter{display:none}
.question h1{font-size:33px}.question .step-meta{margin-bottom:18px}
.question .description{font-size:15px;line-height:1.5;margin:17px 0 23px}
.question .error:empty{min-height:0;margin:0}
}

/* Welcome has a deliberate photo-to-copy rhythm instead of vertical centering. */
@media(max-width:700px){
body[data-screen=welcome] .photo-panel{height:clamp(150px,36svh,280px)}
body[data-screen=welcome] .workspace{min-height:calc(100svh - clamp(150px,36svh,280px))}
body[data-screen=welcome] .stage-wrap{justify-content:flex-start;padding-top:30px;padding-bottom:20px}
body[data-screen=welcome] .welcome h1{font-size:34px}
}
@media(max-width:700px) and (max-height:620px){
body[data-screen=welcome] .photo-panel{height:150px}
body[data-screen=welcome] .workspace{min-height:calc(100svh - 150px)}
body[data-screen=welcome] .stage-wrap{padding-top:22px}
body[data-screen=welcome] .welcome h1{font-size:30px}
}

/* Balanced footer and the final session choice. */
.bottom{justify-content:center;text-align:center}
@media(max-width:700px){
.question .choices:not(.source-choices) .choice:last-child:nth-child(odd){grid-column:1 / -1}
.question .choice .name{min-width:0;font-size:14px;overflow-wrap:anywhere}
}
/* Conversational rewards and a calendar belonging to Cat's visual world. */
.choice input{position:absolute;opacity:0;width:100%;height:100%;inset:0;z-index:2}
.drawn-check{width:19px;height:19px;border:1px solid var(--muted);display:grid;place-items:center;flex-shrink:0;pointer-events:none}
.drawn-check svg{width:18px;height:18px}.drawn-check path{stroke-dasharray:22;stroke-dashoffset:22;transition:stroke-dashoffset .3s var(--ease)}
.choice:has(input:checked) .drawn-check{background:var(--accent);border-color:var(--accent);color:var(--paper)}.choice:has(input:checked) .drawn-check path{stroke-dashoffset:0}.choice:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:3px}
.story-prompts{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.story-prompts button{border:1px solid var(--line);text-decoration:none;padding:8px 12px;font-size:12px}.story-prompts button:hover{background:var(--soft)}
.inquiry-card{border:1px solid var(--line);padding:25px;margin-bottom:35px;text-align:center;background:#f1eee5}.card-studio{text-transform:uppercase;font-size:10px;letter-spacing:.17em;margin:0}.card-names{font-size:40px;line-height:1.15;margin:20px 0 14px;overflow-wrap:anywhere}.card-details{font-size:13px;line-height:1.65;margin:0 0 25px;overflow-wrap:anywhere}.card-film{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.card-film img{width:100%;height:125px;object-fit:cover}.optional-details{border-bottom:1px solid var(--line);padding:22px 0}.optional-details summary{cursor:pointer;font-size:16px}.optional-help{font-size:14px;color:var(--muted)}.extra-field{display:block;font-size:13px;margin:22px 0}.extra-field input{width:100%;background:none;border:0;border-bottom:1px solid var(--line);padding:10px 0;font-size:20px;border-radius:0}.extra-sources{display:flex;flex-wrap:wrap;gap:7px}.extra-sources button{padding:7px 10px;border:1px solid var(--line);font-size:12px;text-decoration:none}.extra-sources button[aria-pressed=true]{background:var(--accent);color:var(--paper)}
.branded-calendar{max-width:440px;margin-top:20px}.calendar-text{display:block;width:100%;font-size:23px;border:0;border-bottom:1px solid var(--line);padding:9px 0;background:transparent;border-radius:0;letter-spacing:.04em}.calendar-text:focus{outline:none;border-bottom:2px solid var(--accent)}.calendar-hint{font-size:12px;color:var(--muted);margin:10px 0 13px;line-height:1.5;letter-spacing:0}.calendar-host{border:1px solid var(--line);padding:12px 15px}.calendar-header{display:grid;grid-template-columns:40px 1fr 40px;align-items:center;margin-bottom:8px}.calendar-header button{text-decoration:none;padding:6px;margin:0;color:var(--ink)}.calendar-header svg{width:20px;height:20px}.month-title{font-size:19px!important}.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));text-align:center;gap:3px}.calendar-weekdays{font-size:10px;letter-spacing:.08em;color:var(--muted);padding-bottom:7px}.calendar-day{border:1px solid transparent;background:none;min-height:36px;min-width:0;font-size:15px;padding:5px;position:relative}.calendar-day:hover{background:var(--soft)}.calendar-day[aria-current=date]{border-bottom-color:var(--accent)}.calendar-day[aria-pressed=true]{background:var(--accent);color:var(--paper)}.calendar-day[aria-pressed=true]::after{content:'';position:absolute;inset:0;border:1px solid var(--accent);animation:dateSelect .4s var(--ease)}.calendar-status{font-size:12px;margin:9px 0;min-height:18px;letter-spacing:.02em}.date-unsure{display:flex;align-items:center;gap:9px;font-size:13px;cursor:pointer}.date-unsure input{accent-color:var(--accent);width:17px;height:17px}.month-options{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.month-options button{padding:13px 6px;text-decoration:none;border:1px solid var(--line)}.month-options button:hover{background:var(--soft)}
@keyframes dateSelect{from{opacity:.5;transform:scale(1.2)}to{opacity:0;transform:scale(1.55)}}
@media(max-width:700px){.branded-calendar{max-width:none;margin-top:16px}.calendar-host{padding:10px}.calendar-day{min-height:36px}.question:has(.branded-calendar) .description{margin-bottom:16px}.question:has(.branded-calendar) h1{font-size:30px}.question:has(.branded-calendar) .actions{margin-top:20px}.card-film img{height:92px}.inquiry-card{padding:20px 15px}.card-names{font-size:34px}}
@media(prefers-reduced-motion:reduce){.drawn-check path{transition:none}.calendar-day[aria-pressed=true]::after{animation:none}}

.description:empty{display:none}

/* Preserve whole words and give long option labels enough room on phones. */
.choice .name{overflow-wrap:normal!important;word-break:normal;hyphens:none;line-height:1.35}
@media(max-width:700px){
.question .choice{gap:9px;padding:10px}
.question .choice .name{font-size:14px}
.question h1{font-size:clamp(27px,7.5vw,33px);text-wrap:balance}
}
@media(max-width:374px){
.question .choices{grid-template-columns:minmax(0,1fr)}
.question .choice{min-height:44px;padding:9px 12px}
.question .choice .name{font-size:15px}
}

.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.cta:disabled{opacity:.6;cursor:progress}
