.life-controls,.life-actions{display:flex;flex-wrap:wrap;align-items:end;gap:14px;margin:24px 0}.life-controls label{display:grid;gap:8px;font-size:.9rem;min-width:170px}.life-controls input,.life-controls select,.life-item select{font:inherit;padding:11px;border:1px solid #bbb;border-radius:8px;background:white;color:#222;max-width:100%}.life-item-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.life-item{padding:24px;border:1px solid #dedbd5;border-radius:14px;background:#fffdf8;min-width:0}.life-item h2{font-size:1.35rem;line-height:1.4;margin:0 0 12px}.life-item p{font-size:1rem;line-height:1.65}.life-item-label{color:#666;font-size:.8rem!important}.life-item label{display:grid;gap:8px;font-size:.9rem}.life-item .life-check{display:flex;align-items:center;gap:8px;padding-block:10px}.life-check input{width:20px;height:20px}.life-result{max-width:700px;padding:30px;margin:25px auto;background:#f6f2e9;border-radius:16px;font:1.7rem/1.5 Georgia,serif}.life-status,.life-count,.life-hint{font-size:.9rem;line-height:1.6;color:#555}.life-status{min-height:1.6em}.life-worksheet{max-width:760px;margin:30px auto}.life-worksheet label,[data-life-tool]>label{display:block;font-weight:600;margin:24px 0 8px}.life-worksheet textarea,[data-life-tool]>textarea,.life-message textarea,.life-message input{box-sizing:border-box;width:100%;padding:15px;border:1px solid #aaa;border-radius:8px;font:inherit;background:#fffdf8;line-height:1.6;color:#222}.life-message{margin:30px 0;padding:24px;border:1px solid #ddd;border-radius:12px}.life-message label{display:block;margin:18px 0 8px}.life-message-output{white-space:pre-wrap}.life-print{display:none}.life-blank-space{min-height:90px;border-bottom:1px solid #aaa}.life-item[hidden],.life-interactive[hidden],[data-life-controls][hidden],[data-sketch-root][hidden]{display:none!important}[data-sketch-canvas]{display:block;width:100%;max-width:800px;height:auto;background:#fffdf8;border:1px solid #ccc;touch-action:none;cursor:crosshair}[data-life-tool] :focus-visible,.life-message :focus-visible{outline:3px solid #8b704d;outline-offset:3px}.life-printable{margin:35px 0;padding:25px;border:1px solid #bbb;border-radius:6px}.life-printable li{margin-bottom:16px}.life-drawing-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.life-drawing-steps figure{margin:0}.life-drawing-steps svg{width:100%;height:auto;background:#fffdf8;border:1px solid #eee}.life-drawing-steps figcaption{font-size:.85rem;line-height:1.5;margin-top:6px}
@media(max-width:900px){.life-item-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.life-item-grid{grid-template-columns:1fr}.life-controls label{flex:1;min-width:130px}.life-result{padding:22px;font-size:1.4rem}.life-drawing-steps{grid-template-columns:1fr}.life-drawing-steps svg{max-height:220px}.life-message{padding:18px}}
@media print{@page{margin:15mm}body{background:white!important;color:black!important}body>header,body>nav,body>footer,.skip-link,[data-life-selection],.breadcrumbs,.tool-heading,.life-controls,.life-actions,.life-status,.life-count,.tool-privacy,.tool-guide,.life-item-grid,.life-result,.life-worksheet,[data-sketch-root],[data-life-tool]>label,[data-life-tool]>textarea,.article-related,.article-next,.life-message{display:none!important}[data-life-tool]{width:100%!important;max-width:none!important;margin:0!important;padding:0!important}.life-print{display:block!important}.life-print section{break-inside:avoid;border:1px solid #bbb;padding:12px;margin:10px 0}.life-print p{white-space:pre-wrap;overflow-wrap:anywhere;font:12pt/1.5 sans-serif}.life-print h3{font:600 14pt/1.4 sans-serif}.life-print .life-blank-space{min-height:64px}.life-print-cards [data-print-output]{display:grid;grid-template-columns:1fr 1fr;gap:12px}.life-print-cards section{margin:0;min-height:100px}.life-printable{break-inside:avoid}.life-drawing-steps{grid-template-columns:repeat(3,1fr)}.life-drawing-steps figure{break-inside:avoid}a{color:inherit!important}}

/* A single tactile card, with the full server-rendered collection available below. */
.swipe-experience{max-width:680px;margin:12px auto 36px;text-align:center}.deck-progress{font-size:.78rem;letter-spacing:.08em;color:#6a6660;margin:0 0 22px}.deck-stage{position:relative;width:min(100% - 32px,360px);margin:auto;isolation:isolate}.deck-underlay{position:absolute;inset:0;background:#e7e2d7;border:1px solid #d8d1c4;border-radius:22px;transform:rotate(3deg) translate(4px,3px);z-index:-1}.swipe-card{position:relative;display:flex;flex-direction:column;justify-content:space-between;aspect-ratio:5/7;min-height:380px;box-sizing:border-box;padding:30px 27px 24px;border-radius:22px;border:1px solid #d6cdbd;background:#faf6ed;box-shadow:0 14px 35px #463a2312;color:#242321;touch-action:pan-y pinch-zoom;cursor:grab;transition:transform .22s ease,opacity .2s ease;user-select:none;-webkit-user-select:none;overflow:hidden}.swipe-card:focus-visible{outline:3px solid #676f52;outline-offset:7px}.swipe-card.is-dragging{transition:none;cursor:grabbing}.swipe-card.is-leaving{pointer-events:none}.deck-copy{margin:auto 0;padding:24px 0}.deck-copy h2{font-family:Georgia,serif;font-weight:400;font-size:clamp(1.55rem,3vw,2.05rem);line-height:1.35;letter-spacing:-.025em;margin:0}.deck-copy p{font-size:.98rem;line-height:1.65;margin:18px 0 0}.deck-copy p:empty{display:none}.deck-category,.deck-card-footer{font-size:.66rem;letter-spacing:.1em;line-height:1.5;color:#6c665b;text-transform:uppercase;margin:0}.deck-card-footer{font-size:.6rem;text-transform:none;letter-spacing:.07em}.deck-instructions{font-size:.83rem;color:#68645f;margin:25px 0 14px}.deck-buttons{display:flex;align-items:center;justify-content:center;gap:14px}.deck-action,.deck-undo,.deck-restart{font:inherit;border:1px solid #dedbd5;background:white;color:#272725;cursor:pointer}.deck-action{min-width:115px;min-height:76px;display:grid;place-content:center;gap:4px;border-radius:18px;font-size:.8rem;padding:10px 16px}.deck-action>span:first-child{font-size:1.6rem;line-height:1.2}.deck-keep{background:#edf0e8;border-color:#c5ceba;color:#34442b}.deck-pass{color:#65564f}.deck-undo{border:0;font-size:.75rem;display:grid;gap:4px;padding:12px 6px}.deck-undo span{font-size:1.4rem}.deck-action:disabled,.deck-undo:disabled{opacity:.35;cursor:default}.deck-stamp{position:absolute;top:70px;font:600 1.5rem/1 sans-serif;border:3px solid;padding:10px;border-radius:5px;opacity:0;pointer-events:none}.deck-stamp-left{left:20px;color:#956451;transform:rotate(-12deg)}.deck-stamp-right{right:20px;color:#51704a;transform:rotate(12deg)}.is-dragging[data-direction=left] .deck-stamp-left,.is-dragging[data-direction=right] .deck-stamp-right{opacity:var(--drag,0)}.deck-restart{margin:22px auto;padding:12px 18px;border-radius:25px}.deck-saved{margin:32px auto 0;text-align:left;border:1px solid #ddd8ce;padding:18px 22px;border-radius:16px;background:#fdfcf9}.deck-saved summary,.deck-browse summary{cursor:pointer;font-weight:600;padding:6px 0}.deck-saved summary span{float:right;border-radius:20px;background:#e9eddf;min-width:28px;text-align:center;margin-right:4px;font-size:.85rem}.deck-saved ul{list-style:none;padding:0;margin:0}.deck-saved li{display:flex;align-items:center;gap:12px;min-height:52px;padding:10px 0;border-top:1px solid #eee8de;text-align:left;font-size:.94rem}.deck-saved li>span{flex:1}.deck-saved li button{font:inherit;background:none;border:0;color:#5c5b53;cursor:pointer;min-height:44px}.deck-saved li .deck-star{font-size:1.65rem;color:#75612e;min-width:44px}.deck-browse{margin:35px 0;border-top:1px solid #eee;padding-top:12px}.deck-browse .life-item-grid{margin-top:20px}.has-deck .life-result,.has-deck .life-count{display:none}.has-deck>.life-actions{justify-content:center}.has-deck>[data-life-selection]{text-align:center}.has-deck>.life-controls{justify-content:center}.has-deck>.tool-privacy{max-width:640px;margin-inline:auto;font-size:.8rem}.has-deck>.life-status{text-align:center}.deck-complete{background:#f0f1e9}
@media(max-width:600px){.has-deck .tool-heading{margin-bottom:24px}.deck-stage{width:min(100% - 20px,330px)}.swipe-card{min-height:355px;padding:26px 25px 20px}.deck-action{min-width:105px;padding:10px 12px}.deck-buttons{gap:10px}.deck-saved{padding:16px}.swipe-experience{margin-top:8px}.has-deck>.life-actions{gap:8px}.has-deck>.life-actions .button{font-size:.78rem;padding:11px 15px}}
@media(prefers-reduced-motion:reduce){.swipe-card{transition:none!important}}
@media print{.swipe-experience,.deck-browse{display:none!important}}
.tool-page.has-deck{overflow-x:clip}.tool-page.has-deck .tool-heading h1{font-size:clamp(2rem,4vw,3.15rem);margin:0 0 16px}.tool-page.has-deck .tool-heading .eyebrow{display:none}.tool-page.has-deck .tool-heading>p:last-child{margin:0;font-size:1rem;line-height:1.6;max-width:650px}.tool-page.has-deck .tool-heading{margin:24px 0}.has-deck [data-life-generate]{padding:10px 16px;min-height:44px;font-size:.8rem;background:none;border:0;color:#555;text-decoration:underline;text-underline-offset:4px}.has-deck .life-controls{margin:18px 0 24px;gap:12px}.has-deck .life-controls label{font-size:.8rem}.has-deck [data-add-value]{font-size:.85rem;padding:12px 16px}
@media(max-width:600px){.tool-page.has-deck{padding-top:20px}.tool-page.has-deck .breadcrumbs{font-size:.78rem}.tool-page.has-deck .tool-heading{margin-top:20px;margin-bottom:18px}.tool-page.has-deck .tool-heading h1{font-size:2rem}.has-deck .life-controls{gap:10px;margin-bottom:18px}.has-deck .life-controls label{min-width:125px}.has-deck [data-life-generate]{padding:4px 12px;min-height:36px}.deck-progress{margin-bottom:16px}.swipe-card{min-height:330px}.deck-stage{width:min(100% - 24px,300px)}}

/* Real upcoming cards sit below the active face and rise as it leaves. */
.deck-stage{--reveal:0;margin-bottom:38px}
.swipe-card,.deck-preview{border-radius:17px;border:1px solid #d1c6b4;background-color:#faf6ed;background-image:radial-gradient(ellipse at 12% 0%,#ffffffc7,transparent 65%),repeating-linear-gradient(0deg,#82693904 0px,#82693904 1px,transparent 1px,transparent 3px);box-shadow:inset 0 1px 0 #fff,inset 0 -2px 0 #cbbda95c,0 2px 3px #57432615,0 10px 20px #5743260f}
.swipe-card{z-index:3;transition:none;transform-origin:50% 85%;box-shadow:inset 0 1px 0 #fff,inset 0 -2px 0 #cbbda96b,0 3px 5px #46351f1a,0 15px 30px #46351f12}
.swipe-card.is-leaving{transition:transform .24s cubic-bezier(.3,.05,.6,1),opacity .24s ease}
.swipe-card.is-returning{transition:transform .24s cubic-bezier(.2,.75,.3,1)}
.deck-preview{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-between;box-sizing:border-box;padding:30px 27px 24px;pointer-events:none;overflow:hidden;color:#242321;transform-origin:50% 85%;transition:transform .24s cubic-bezier(.2,.75,.3,1)}
.deck-preview[hidden]{display:none}
.deck-preview-next{z-index:2;transform:translateY(calc(17px * (1 - var(--reveal)))) rotate(calc(2.5deg * (1 - var(--reveal)))) scale(calc(.975 + .025 * var(--reveal)))}
.deck-preview-far{z-index:1;background-color:#f2ecdf;transform:translateY(calc(33px - 16px * var(--reveal))) rotate(calc(-3deg + 5.5deg * var(--reveal))) scale(calc(.95 + .025 * var(--reveal)))}
.deck-copy .deck-title{font-family:Georgia,serif;font-weight:400;font-size:clamp(1.55rem,3vw,2.05rem);line-height:1.35;letter-spacing:-.025em;margin:0}
.deck-preview .deck-body:empty{display:none}
.deck-stage.is-dragging .deck-preview{transition:none}
.deck-stage.is-dragging .swipe-card{box-shadow:inset 0 1px 0 #fff,inset 0 -2px 0 #cbbda96b,0 5px 8px #46351f18,0 24px 40px #46351f24}
@media(max-width:600px){.deck-preview{padding:26px 25px 20px}.deck-stage{margin-bottom:36px}}
@media(prefers-reduced-motion:reduce){.deck-preview,.swipe-card.is-leaving,.swipe-card.is-returning{transition:none!important}}

.article-publication{margin:32px 0;color:#777;font-size:.85rem}.article-publication .article-date{margin:0}
