.ff-preparation{overflow-wrap:anywhere;--prep-edge:clamp(18px,4vw,64px)}
.ff-preparation .prep-opening,.ff-preparation .prep-workspace{max-width:1440px;margin:auto;padding:64px var(--prep-edge)}
.ff-preparation .prep-opening{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(28px,5vw,80px);align-items:center}
.ff-preparation .prep-back{display:block;font-size:12px;margin-bottom:38px;color:var(--soft)}
.ff-preparation h1{font-size:clamp(42px,4.8vw,72px);margin:22px 0;max-width:780px;line-height:1.04}
.ff-preparation .prep-intro{max-width:620px;font-size:19px;margin-bottom:28px}
.ff-preparation .prep-photo{position:relative;margin:0 0 30px;padding:10px;background:linear-gradient(130deg,#fffaf2,#dfd5c3);border:1px solid #c7bba6;box-shadow:10px 16px 0 #d8cdbb,18px 28px 38px #14292b20;transform:rotate(2deg)}
.ff-preparation .prep-photo img{width:100%;height:clamp(260px,30vw,450px);object-fit:cover}
.ff-preparation .prep-photo figcaption{font-size:10px;padding:18px 9px 8px}
.ff-preparation .prep-photo-tab{position:absolute;bottom:-24px;right:14px;background:var(--ink);color:var(--bone);padding:12px 18px;font:11px 'IBM Plex Mono',monospace;box-shadow:4px 5px 0 #a9521f55}
.ff-preparation .prep-workspace{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(0,1fr);gap:clamp(26px,4vw,64px);align-items:start;padding-top:34px;padding-bottom:90px}
.ff-preparation .prep-sheet{min-width:0;padding:clamp(22px,3vw,44px);background:linear-gradient(115deg,#fffcf6,var(--sheet));border:1px solid #d4c9b6;border-top:5px solid var(--copper);box-shadow:7px 9px 0 #ded6c7,12px 18px 25px #14292b0c}
.ff-preparation .prep-sheet-top{display:flex;justify-content:space-between;gap:12px;font:10px/1.6 'IBM Plex Mono',monospace;letter-spacing:.08em;border-bottom:1px solid var(--line);padding-bottom:22px;margin-bottom:36px}
.ff-preparation h2{font-size:clamp(30px,3vw,43px);margin-bottom:22px;line-height:1.12}
.ff-preparation .prep-summary,.ff-preparation .prep-written ul{padding-left:22px;color:var(--soft)}
.ff-preparation li{margin:10px 0;padding-left:4px}
.ff-preparation .prep-progress{margin:34px 0;padding:22px 0;border-block:1px solid var(--line)}
.ff-preparation .prep-progress>div{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:14px;font-weight:650}
.ff-preparation progress{display:block;appearance:none;width:100%;height:8px;border:0;background:#e1dacc;margin-top:16px;accent-color:var(--copper)}
.ff-preparation progress::-webkit-progress-bar{background:#e1dacc}
.ff-preparation progress::-webkit-progress-value{background:var(--copper);transition:width .25s ease}
.ff-preparation progress::-moz-progress-bar{background:var(--copper)}
.ff-preparation .prep-storage,.ff-preparation #prep-note-help{font-size:13px;line-height:1.5;margin:14px 0 0}
.ff-preparation .prep-group{margin-top:36px;padding-bottom:30px;border-bottom:1px solid var(--line);min-width:0}
.ff-preparation legend{font-size:24px;line-height:1.2;font-weight:650;letter-spacing:-.03em;margin-bottom:16px;max-width:100%}
.ff-preparation legend>span{font:12px 'IBM Plex Mono',monospace;color:var(--copper);margin-right:14px}
.ff-preparation .prep-group>p{font-size:16px}
.ff-preparation .prep-check-row{display:flex;align-items:flex-start;gap:15px;padding:15px 10px;min-height:54px;border-bottom:1px solid #d8d5ca80;cursor:pointer;font-size:16px;transition:background .2s}
.ff-preparation .prep-check-row:hover{background:#e7dfcf66}
.ff-preparation .prep-check-row:has(input:checked){background:#e6ebdf}
.ff-preparation .prep-check-row input{flex:0 0 22px;width:22px;height:22px;margin:2px 0;accent-color:var(--copper)}
.ff-preparation .prep-group-link{display:inline-block;padding:15px 0 0;font-size:14px;font-weight:650}
.ff-preparation .prep-written{margin-top:44px}
.ff-preparation .prep-written h2{margin-top:18px}
.ff-preparation .prep-margin{min-width:0}
.ff-preparation .prep-note{padding:clamp(22px,2.5vw,36px);background:#e9dfcd;border:1px solid #d3c3a8;border-top:3px solid var(--copper);box-shadow:5px 7px 0 #d6c8b1}
.ff-preparation .prep-note h2{margin-top:20px;font-size:clamp(30px,3vw,42px)}
.ff-preparation .prep-note label{display:block;font-weight:650;font-size:15px;margin:24px 0 10px}
.ff-preparation .prep-note label span{font-weight:400}
.ff-preparation textarea{display:block;width:100%;min-height:150px;resize:vertical;border:1px solid #8f8e7e;background:#fffaf1;border-radius:2px;padding:14px;font-size:16px;color:var(--ink)}
.ff-preparation .prep-note .ff-button{margin-top:24px;width:100%;gap:14px;font-size:14px;padding:14px 16px}
.ff-preparation .prep-tools{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}
.ff-preparation .prep-tools[hidden],.ff-preparation .prep-progress[hidden]{display:none}
.ff-preparation .prep-tools button{background:transparent;border:0;border-bottom:1px solid currentColor;padding:12px 0;min-height:44px;font-size:13px}
.ff-preparation .prep-ready{margin-top:40px;padding-top:26px;border-top:1px solid #bdbbaa}
.ff-preparation .prep-ready h2{font-size:29px}
.ff-preparation .prep-ready a{font-size:15px;font-weight:650}
.ff-preparation .prep-closing-band{border-top:7px solid var(--copper);background:linear-gradient(115deg,#234142,var(--ink))}
.ff-preparation .prep-closing-band h2{font-size:clamp(38px,4.6vw,64px)}
.ff-preparation .prep-enter{animation:prep-arrive .65s var(--ease) both}
@keyframes prep-arrive{from{transform:translateY(18px);opacity:.85}to{transform:translateY(0);opacity:1}}
@media(max-width:800px){.ff-preparation .prep-opening{grid-template-columns:1fr;padding-top:32px;gap:35px}.ff-preparation .prep-back{margin-bottom:26px}.ff-preparation .prep-photo{margin:0 10px 20px;transform:rotate(1deg)}.ff-preparation .prep-photo img{height:280px}.ff-preparation .prep-workspace{grid-template-columns:1fr;padding-top:10px;gap:36px}.ff-preparation .prep-intro{font-size:17px}.ff-preparation .prep-sheet-top{font-size:8px}.ff-preparation .prep-group-link{font-size:13px}.ff-preparation .prep-sheet{padding:24px 18px}.ff-preparation .prep-closing-band{padding-inline:var(--prep-edge)}.ff-preparation .prep-opening .ff-button{gap:15px;font-size:14px}}
@media(prefers-reduced-motion:reduce){.ff-preparation .prep-enter{animation:none}.ff-preparation progress::-webkit-progress-value{transition:none}.ff-preparation .prep-check-row{transition:none}}
@media print{body:has(.ff-preparation){background:white;font-size:11pt}body:has(.ff-preparation)>.ff-demo,body:has(.ff-preparation)>.ff-header,body:has(.ff-preparation)>nav,body:has(.ff-preparation)>.ff-footer,body:has(.ff-preparation)>.ff-thumb,body:has(.ff-preparation)>.ff-skip{display:none!important}.ff-preparation .prep-photo,.ff-preparation .prep-back,.ff-preparation .prep-tools,.ff-preparation .prep-note,.ff-preparation .prep-opening .ff-button{display:none!important}.ff-preparation .prep-opening,.ff-preparation .prep-workspace{display:block;padding:12px 0;max-width:none}.ff-preparation .prep-sheet{background:white;border:0;box-shadow:none;padding:0}.ff-preparation h1{font-size:27pt}.ff-preparation h2{font-size:20pt}.ff-preparation .prep-intro,.ff-preparation p,.ff-preparation .prep-check-row{font-size:11pt}.ff-preparation .prep-check-row{min-height:30px;padding:6px 0;break-inside:avoid}.ff-preparation .prep-group{margin-top:22px;padding-bottom:16px}.ff-preparation legend{font-size:16pt}.ff-preparation .prep-group-link{font-size:10pt}.ff-preparation .prep-ready{margin-top:20px}.ff-preparation .prep-closing-band{display:block;background:white;color:var(--ink);padding:22px 0;border-top:2px solid var(--ink);break-inside:avoid}.ff-preparation .prep-closing-band p,.ff-preparation .prep-closing-band .ff-eyebrow{color:var(--ink)}.ff-preparation .prep-closing-band h2{font-size:20pt}.ff-preparation .prep-closing-band>div:last-child{padding:0}.ff-preparation .prep-closing-band .ff-button{background:white;color:var(--ink);box-shadow:none;border:1px solid var(--ink)}.ff-preparation .prep-enter{animation:none;transform:none}.ff-preparation .prep-check-row input{appearance:auto;print-color-adjust:exact}.ff-preparation a{overflow-wrap:anywhere}}
