@charset "UTF-8";
:root{font-family:Arial,Helvetica,sans-serif;color:#34291f;background:#eee7dd;font-size:16px;--blue:#553b2e;--ink:#34291f;--muted:#71685e;--paper:#fffdf8;--line:#ddd4c8;--gold:#eac467}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button,a,input,textarea{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #bc8825;outline-offset:4px}button{border:0}a{color:var(--blue)}.layout{max-width:1120px;min-height:100dvh;margin:auto;display:grid;grid-template-columns:1fr 480px;gap:80px;align-items:center;padding:40px}.aside{align-self:stretch;display:flex;flex-direction:column;padding:40px 0}.brand{font-size:21px;letter-spacing:.02em;font-weight:bold;display:flex;align-items:center;gap:12px}.brand-mark{background:var(--blue);color:white;width:34px;height:34px;border-radius:11px;display:grid;place-items:center;font:27px Georgia}.aside h1{font:normal 58px/1.08 Georgia,serif;letter-spacing:-.035em;margin:90px 0 30px}.aside p{max-width:340px;line-height:1.7;color:var(--muted)}.journey{margin-top:auto;padding-top:48px;display:flex;gap:26px;font-size:13px;letter-spacing:.09em}.journey span{display:block;color:var(--blue);font-size:12px;margin-bottom:12px}.phone{background:var(--paper);min-height:760px;border-radius:32px;box-shadow:0 18px 80px #203b6712;overflow:hidden;position:relative}.topbar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:22px 26px;border-bottom:1px solid var(--line)}.topbar .brand{font-size:17px}.plain{color:var(--muted);background:none;min-height:44px;padding:8px}.content{padding:28px 30px 32px}.eyebrow{font-size:12px;font-weight:bold;letter-spacing:.16em;text-transform:uppercase;color:var(--blue);margin:6px 0 16px}.content h1,.content h2{font-family:Georgia,serif;font-weight:normal;line-height:1.12;letter-spacing:-.025em;font-size:36px;margin:0 0 20px}.content p{line-height:1.65}.lede{font-size:18px;color:var(--muted)}.muted{color:var(--muted)}.small{font-size:14px;line-height:1.6}.privacy{font-size:12px;text-align:center;line-height:1.6;color:var(--muted);margin:20px 0 4px}.hero-art{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:22px;margin:4px 0 26px;display:block}.button{display:block;width:100%;border:1px solid transparent;background:var(--blue);color:#fff;padding:17px 20px;border-radius:16px;font-weight:bold;min-height:56px;text-align:center;text-decoration:none;margin-top:14px;line-height:1.3}.secondary{background:#f3ede4;color:var(--blue);border-color:#dfd3c3}.ghost{background:transparent;color:var(--muted)}.danger{color:#934039;background:#fbf0ed}.card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px;margin:16px 0;line-height:1.6}.card h3{margin:0 0 8px;font-size:20px}.card p{margin:6px 0}.option{display:block;width:100%;text-align:left;background:#fff;border:1px solid var(--line);color:var(--ink);border-radius:14px;min-height:58px;margin:10px 0;padding:16px 18px;line-height:1.4}.option[aria-pressed=true],.option[aria-checked=true]{border-color:var(--blue);background:#f3e9da;box-shadow:inset 3px 0 var(--blue)}.picker{height:272px;overflow-y:auto;scroll-snap-type:y mandatory;padding:92px 0;border-block:1px solid var(--line);margin:22px 0;scrollbar-width:thin}.pick{scroll-snap-align:center;min-height:62px;display:block;width:100%;padding:17px;background:transparent;color:var(--muted);border-radius:14px;font-size:19px}.pick[aria-checked=true]{background:var(--blue);color:white;font-weight:bold}.chips{display:flex;gap:9px;flex-wrap:wrap;margin:14px 0 26px}.chip{padding:12px 14px;min-height:46px;background:white;color:var(--ink);border:1px solid var(--line);border-radius:12px}.chip[aria-pressed=true]{background:var(--blue);color:#fff}.progress{height:3px;background:#e5dbcc;margin:0 0 30px}.progress div{height:100%;background:var(--blue);transition:width .3s}.question{font-size:28px!important;line-height:1.35!important;min-height:155px}.bottom-row{display:flex;gap:10px;justify-content:space-between;margin-top:22px}.bottom-row button{width:auto;flex:1}textarea,input[type=password]{display:block;width:100%;border:1px solid #c9bba8;border-radius:14px;padding:16px;background:white;color:var(--ink);font-size:18px;line-height:1.5}textarea{min-height:110px;resize:vertical}label{display:block;line-height:1.5;margin:16px 0 10px}.check{display:flex;align-items:flex-start;gap:12px}.check input{width:22px;height:22px;accent-color:var(--blue);flex-shrink:0}.review-row{margin:18px 0;border-bottom:1px solid var(--line);padding-bottom:12px}.review-row textarea{min-height:82px}.review-row button{font-size:14px;float:right}.review-row:after{content:'';display:block;clear:both}.said{background:#eef0f1;color:#59687b;opacity:.65}.said::after{content:' · povedano';font-size:14px;display:block;margin-top:8px}.confession .content{padding-top:42px}.confession .quote{font:26px/1.6 Georgia,serif}.confession .option{font:24px/1.5 Georgia,serif;padding:24px}.confession .phone{background:#f6f7fb}.quote{font:23px/1.65 Georgia,serif}.notice{font-size:13px;line-height:1.5;background:#f7edce;color:#6f5318;padding:12px 16px;border-radius:12px;margin-bottom:20px}.error{padding:14px;background:#fdece9;color:#843b32;border-radius:12px}.success{background:#eaf1ee;padding:15px;color:#2b5645;border-radius:12px}.child{--blue:#553b2e;--paper:#fffdf4;--gold:#e8b93e}.child .content h1,.child .content h2{font-family:Arial,sans-serif;font-weight:700}.child .button,.child .option{border-radius:22px}.senior .content{font-size:19px}.senior .small{font-size:17px}.senior .button{font-size:19px}.farewell{text-align:center}.light{width:96px;height:96px;border-radius:50%;margin:35px auto;background:#edc76b;box-shadow:0 0 70px #edc76b80;animation:release 1.8s ease-out}.farewell h1{font-size:44px}.tools{display:flex;justify-content:center;gap:12px;margin-top:18px}.status{font-size:12px;text-align:center;color:var(--muted);padding:0 20px 20px}.prototype-nav{padding:15px;background:#34291f;color:white;display:flex;align-items:center;justify-content:space-between;gap:15px}.prototype-nav button{padding:12px;border-radius:8px;color:#34291f}.demo-tag{font-size:11px;letter-spacing:.1em;color:#745515}.mobile-phase{font-size:12px;color:var(--muted)}dialog{border:0;border-radius:22px;width:calc(100% - 32px);max-width:420px;padding:28px;color:var(--ink);background:var(--paper)}dialog::backdrop{background:#172c5277}dialog h2{font:28px Georgia;line-height:1.2}dialog p{line-height:1.6}.help-summary{cursor:pointer;padding:12px 0;font-size:14px;color:var(--blue)}@keyframes release{from{transform:scale(.4);opacity:.1}to{transform:scale(1);opacity:1}}@media(max-width:800px){body{background:var(--paper)}.layout{display:block;padding:0;min-height:100dvh}.aside{display:none}.phone{border-radius:0;box-shadow:none;min-height:100dvh;max-width:540px;margin:auto}.topbar{padding:12px 22px}.content{padding:26px 24px 28px}.content h1{font-size:34px}.hero-art{max-height:250px}.privacy{margin-top:18px}.button{min-height:56px}.status{padding-bottom:max(20px,env(safe-area-inset-bottom))}}@media(max-width:360px){.content{padding-inline:18px}.content h1{font-size:31px}.hero-art{max-height:200px}.topbar{padding-inline:18px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

h1:focus{outline:none}@media(max-width:800px){.hero-art{max-height:210px}.notice{font-size:12px;padding:10px 12px}.lede{font-size:17px}}

.quote{white-space:pre-line}.said[aria-pressed=true]{color:#637187;background:#eef0f1;opacity:1;border-color:#ddd4c8;box-shadow:none}.review-catalogue{max-width:1000px;margin:auto;padding:24px}.review-catalogue h1{font:36px Georgia}.review-catalogue article{background:white;border:1px solid var(--line);padding:20px;border-radius:16px;margin:18px 0}.review-catalogue .filters{display:flex;gap:16px;flex-wrap:wrap}.review-catalogue select{font:inherit;padding:12px;max-width:100%}.review-catalogue code{overflow-wrap:anywhere}

.catalog-copy,.question{white-space:pre-line}.safety-note{background:#edf2f5;color:#294458;border:1px solid #cedce4;border-radius:14px;padding:16px;font-size:15px;line-height:1.6}

/* Quiet, focused preparation screens. Catalogue typography is preserved as text. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.question{font-size:1.4rem!important;line-height:1.4!important;min-height:0;margin-bottom:28px!important;overflow-wrap:anywhere}
.senior .question{font-size:1.65rem!important}
.button.quiet{background:transparent;color:var(--muted);font-weight:normal;font-size:.875rem;min-height:44px;padding:10px 8px;margin-top:6px}
[data-view="questions"] .bottom-row{margin-top:8px}
[data-view="questions"] .bottom-row .plain{font-size:.875rem;flex:initial}
[data-view="questions"] .option{min-height:62px;font-size:1rem}
[data-view="notes"] h1,[data-view="review"] h1{font-size:1.9rem;line-height:1.2}
[data-view="notes"] #note{min-height:170px;font-size:1rem}
[data-view="notes"] .privacy{margin:12px 0 20px}
.skipped-link{display:block;width:100%;font-size:.875rem;line-height:1.5;margin-top:8px;text-align:center}
.quiet-details{margin-top:8px}
.quiet-details .help-summary{font-size:.875rem;color:var(--muted);line-height:1.5;min-height:44px;padding:12px 0}
.review-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px 18px 4px;margin:14px 0}
.review-card .catalog-copy{font-size:1rem;line-height:1.65;margin:0;overflow-wrap:anywhere}
.review-card textarea{min-height:120px;font-size:1rem}
.item-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:4px}
.item-actions .plain{font-size:.875rem;padding:10px 4px}
.senior .review-card .catalog-copy,.senior [data-view="questions"] .option,.senior .review-card textarea{font-size:1.1875rem}
.senior .button.quiet,.senior .item-actions .plain{font-size:1rem}

/* Preparation redesign: warm brown, black content and grey instructions. */
:root{color:#202429;background:#eee7dd;--blue:#553b2e;--ink:#202429;--muted:#62686d;--paper:#fffdf8;--line:#e0d6ca}
.child{--blue:#553b2e;--paper:#fffdf8}
.brand,.aside h1{color:var(--blue)}
.brand-mark{color:#fff}
.aside p{color:var(--muted)}
.topbar.preparation-header{background:var(--blue);border-color:var(--blue);gap:12px}
.preparation-header .brand{font-family:Arial,sans-serif;font-size:.75rem;letter-spacing:.075em;line-height:1.5;color:#fff}
.preparation-header .plain{color:#fff4e6;font-size:.75rem;padding:8px 0}
.content h1{font-size:2rem;line-height:1.2}
.content p{line-height:1.6}
.technical{font-size:.875rem;color:var(--muted);line-height:1.65}
.intro-steps{list-style:none;padding:0;display:grid;gap:10px;margin:24px 0}
.intro-steps li{display:flex;align-items:center;gap:18px;background:var(--blue);color:#fff;padding:17px 20px;border-radius:14px;font-size:.875rem;font-weight:bold;line-height:1.5}
.step-number{font:2.25rem/1 Georgia,serif;min-width:24px}
.age-choices{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:24px 0}
.age-choice{min-height:60px;padding:13px 10px;line-height:1.4;font-size:1rem}
.age-choice[aria-checked=true]{background:var(--blue);color:#fff;border-color:var(--blue)}
.option[aria-pressed=true],.option[aria-checked=true]{background:#f3e9da;border-color:var(--blue);box-shadow:inset 3px 0 var(--blue)}
.path-choice{padding:18px;margin:14px 0}
.path-choice strong{display:block;font-size:1.125rem;margin-bottom:10px}
.path-choice span{display:block;font-size:1rem;line-height:1.6}
.path-choice[aria-checked=true]{border-width:2px;padding:17px}
.prayer-panel{background:var(--blue);color:white;border-radius:16px;padding:20px 22px;margin:20px 0}
.prayer-panel p{margin:0;line-height:1.65}
.prayer-panel .quote{font-size:1.3rem}
.question-category{font-size:.875rem;color:var(--muted);margin:0 0 14px}
[data-view="questions"] .progress{margin-bottom:24px;background:#e5dbcc}
[data-view="questions"] .question{background:#6b5144;color:#fff;padding:24px 22px;border-radius:16px;font-size:1.5rem!important;line-height:1.45!important;margin-bottom:24px!important}
[data-view="questions"] .option.response{min-height:52px;padding:13px 16px;font-size:1rem;margin:9px 0}
[data-view="questions"] .response[aria-pressed=true]{background:var(--blue);color:#fff;box-shadow:none}
[data-view="questions"] .response.answer-feedback:disabled{opacity:1;cursor:default}
.skip-question{border:1px dashed #cfc0ad!important;border-radius:12px!important;text-transform:uppercase;letter-spacing:.035em;font-size:.75rem!important;margin-top:12px!important;min-height:48px!important}
.reflection-copy{background:#6b5144;color:#fff;border-radius:16px;padding:22px;font-size:1.3rem}
.secondary{background:#f3ede4;border-color:#dfd3c3;color:var(--blue)}
.preparation-exit{border-top:1px solid var(--line);margin-top:24px;padding-top:12px;text-align:center}
.preparation-exit .plain{font-size:.75rem;text-transform:uppercase;letter-spacing:.025em;line-height:1.5}
.senior .technical,.senior .question-category{font-size:1rem}
.senior [data-view="questions"] .question{font-size:1.7rem!important}
.senior [data-view="questions"] .option.response{font-size:1.1875rem}
.button[data-action="path-start"],.button[data-action="questions-start"],[data-view="ready"]>.button:not(.quiet){text-transform:uppercase;font-size:.875rem;letter-spacing:.035em;line-height:1.5}
[data-view="welcome"]>.technical{margin-top:20px}
[data-view="ready"]>.technical{margin:24px 0 16px}
.safety-note{color:#294458;background:#eaf0f4}
.said[aria-pressed=true]{color:#637187;background:#eef0f1;border-color:#ddd4c8;box-shadow:none;opacity:1}
@media(max-width:360px){.age-choice{font-size:.9375rem}.content h1{font-size:1.85rem}.preparation-header .brand{font-size:.6875rem}}

/* One continuous, quiet order of confession. */
body.celebrating,.confession{--blue:#652d39;--paper:#fffdf8;--line:#e4d0cd}
.confession .phone{background:var(--paper)}
.topbar.celebration-header{background:var(--blue);border-color:var(--blue);gap:18px;align-items:flex-start}
.celebration-header .brand{font-family:Arial,sans-serif;color:#fff;font-size:.8125rem;line-height:1.5;letter-spacing:.07em;max-width:280px}
.celebration-header .plain{color:#fff0e9;font-size:.75rem;padding:0;min-height:40px}
.confession .content{padding-top:28px}
.rite-block{margin:0 0 32px}
.rite-instruction{font-size:.9375rem;line-height:1.65;color:var(--muted);margin:12px 0}
.celebration-flow .rite-spoken{display:block;width:100%;background:#f8eeea;border:1px solid #ddc4be;border-radius:17px;color:#4d252b;font:1.5rem/1.55 Georgia,serif;letter-spacing:0;text-align:left;padding:20px;margin:14px 0;overflow-wrap:anywhere}
.celebration-flow h1.rite-spoken{font-size:1.75rem;line-height:1.4}
.rite-item{min-height:60px}
.rite-item .said-note{font: .875rem/1.5 Arial,sans-serif;margin-top:10px}
.rite-item .said-note:not([hidden]){display:block}
.rite-item.said::after{content:none}
.rite-item.said[aria-pressed=true]{background:#eff0f1;border-color:#dcdfe1;color:#62686d}
.rite-priest{font:1.5rem/1.55 Georgia,serif;color:#4d252b;margin:16px 0;padding:8px 0}
.rite-priest strong{font-weight:normal}
.celebration-flow>.button{margin-top:22px}
.celebration-flow>.quiet{margin-top:8px}
.senior .rite-spoken,.senior .rite-priest{font-size:1.65rem}
.senior .rite-instruction{font-size:1.0625rem}
body.first-confession,body.first-confession button,body.first-confession input,body.first-confession textarea,body.first-confession input::placeholder,body.first-confession textarea::placeholder{text-transform:uppercase}
body.first-confession .quote,body.first-confession .rite-spoken,body.first-confession .rite-priest,body.first-confession h1,body.first-confession h2,body.first-confession .aside h1{font-family:Arial,Helvetica,sans-serif;letter-spacing:.015em}
body.first-confession .rite-spoken,body.first-confession .rite-priest{font-size:1.375rem;line-height:1.6}
@media(max-width:360px){.celebration-header .brand{font-size:.75rem;letter-spacing:.04em}.celebration-flow .rite-spoken{padding:17px}.celebration-flow h1.rite-spoken{font-size:1.55rem}}

dialog.transfer-dialog{max-width:700px;max-height:calc(100dvh - 32px);overflow:auto}
.transfer-qr{max-width:min(620px,max(280px,calc(100dvh - 260px)));margin:20px auto;background:white;padding:0}
.transfer-qr svg{display:block;width:100%;height:auto;shape-rendering:crispEdges}
.transfer-dialog .technical{margin:12px 0}
.transfer-dialog input{max-width:320px}
.transfer-dialog .error[hidden]{display:none}

/* Keep routine saving feedback quiet and layout-stable. */
.status{min-height:38px}
.app-update{text-align:center;padding:0 20px 20px}
.app-update .plain{font-size:.875rem}

/* Transfer is a computer action; cover small screens and touch-only landscape. */
@media(max-width:800px),(hover:none) and (pointer:coarse){[data-action="transfer"]{display:none}}

/* User-supplied scenes: originals remain intact beneath a quiet paper veil.
   Clip a viewport-fixed layer to the reading panel, including on long rites. */
body{--muted:#4b4641;--scene-image:url('./scene-welcome.png');--scene-veil:rgba(255,253,248,.40)}
body[data-scene="examination"]{--scene-image:url('./scene-examination.png')}
body[data-scene="confession"]{--scene-image:url('./scene-confession.png');--scene-veil:rgba(255,253,248,.48)}
body[data-scene="thanks"]{--scene-image:url('./scene-thanks.png');--scene-veil:rgba(255,253,248,.32)}
.phone{isolation:isolate;clip-path:inset(0 round 32px)}
.scene-backdrop{position:fixed;top:0;bottom:auto;height:100vh;height:100lvh;width:480px;z-index:-1;pointer-events:none;background-image:linear-gradient(var(--scene-veil),var(--scene-veil)),var(--scene-image);background-position:center;background-size:cover;background-repeat:no-repeat}
.topbar:not(.preparation-header):not(.celebration-header){background:rgba(255,253,248,.8)}
.card,.review-card,.chip,.option{background-color:rgba(255,253,249,.9)}
.celebration-flow .rite-spoken{background-color:rgba(248,238,234,.94)}
.celebration-flow .rite-item.said[aria-pressed=true]{background:#eff0f1;color:#62686d}
body[data-scene="thanks"] .farewell{padding-top:20px}
body[data-scene="thanks"] .farewell .card{background:rgba(255,253,249,.86)}
@media(max-width:800px){.phone{clip-path:inset(0)}.scene-backdrop{width:min(100%,540px)}}
@media(forced-colors:active){.scene-backdrop{display:none}}

/* Keep the artwork scale stable as mobile browser bars expand/collapse.
   lvh changes on rotation, not on scroll; suppress overscroll stretching. */
html,body{overscroll-behavior-y:none}
.button.quiet.skip-question{background:#e9ddca;color:#553b2e;border:1px solid #c6b399!important;font-weight:600}
.button.quiet.skip-question:hover{background:#e1d1b9}

.profile-group{border:0;padding:0;margin:1.5rem 0}.profile-group legend{margin-bottom:.65rem}.more-question{display:block;text-align:left;width:100%;font:inherit;color:inherit;padding:1rem;margin:.6rem 0;background:#fff9f0;border:1px solid #b9a493;border-radius:1rem}
