@font-face{font-family:Atkinson;src:url(/fonts/atkinson-400.woff2)format("woff2");font-weight:400;font-display:swap;font-style:normal}@font-face{font-family:Bitter;src:url(/fonts/bitter.woff2)format("woff2");font-weight:400 800;font-display:swap;font-style:normal}:root{--paper:#f3ecd8;--surface:#fffaf0;--ink:#25201d;--muted:#625a52;--cyan:#006f78;--cyan-pale:#c5e3df;--tomato:#b53225;--tomato-pale:#f2c7b6;--mustard:#9a6500;--mustard-pale:#f0dc82;--success:#2d6a43;--danger:#9b2c27;--line:#3d3732;--shadow:4px 4px 0 #25201d;--radius:2px;color:var(--ink);background:var(--paper);font-synthesis:none;font-family:Atkinson,Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--paper)}body{background-color:var(--paper);background-image:radial-gradient(#25201d0e .7px,#0000 .7px);background-size:7px 7px;min-width:320px;min-height:100vh;margin:0;font-size:16px;line-height:1.5}button,input,textarea{font:inherit;color:inherit}button,a{touch-action:manipulation}button{cursor:pointer}a{color:var(--ink);text-underline-offset:3px}img{max-width:100%;display:block}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:-.02em;font-family:Bitter,Georgia,serif;line-height:1.12}h1{letter-spacing:-.01em;margin:0;font-size:1.2rem}h2{margin-bottom:8px;font-size:clamp(1.75rem,3vw,2.6rem)}h3{margin-bottom:8px;font-size:1.25rem}:focus-visible{outline:3px solid var(--ink);outline-offset:3px}::selection{background:var(--mustard-pale);color:var(--ink)}.skip-link{z-index:1000;background:var(--ink);color:var(--surface);padding:10px 16px;position:fixed;top:12px;left:16px;transform:translateY(-150%)}.skip-link:focus{transform:none}.visually-hidden{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.fatal-state{text-align:center;max-width:640px;margin:15vh auto;padding:32px}.masthead{min-height:80px;padding:12px clamp(16px,3vw,40px);padding-top:max(12px,env(safe-area-inset-top));border-bottom:2px solid var(--ink);z-index:20;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffaf0f0;justify-content:space-between;align-items:center;gap:24px;display:flex;position:sticky;top:0}.brand{flex-shrink:0;align-items:center;gap:12px;text-decoration:none;display:flex}.brand-mark{background:var(--tomato);color:#fffaf0;border:2px solid var(--ink);width:46px;height:46px;box-shadow:2px 2px 0 var(--ink);place-items:center;font-family:Bitter,serif;font-weight:800;display:grid;transform:rotate(-2deg)}.brand small{color:var(--muted);line-height:1.1;display:block}.masthead-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.network-state{color:var(--muted);padding-right:8px;font-size:.875rem}.button,.studio-button{border:2px solid var(--ink);border-radius:var(--radius);background:var(--surface);min-height:44px;box-shadow:2px 2px 0 var(--ink);justify-content:center;align-items:center;gap:8px;padding:9px 16px;font-weight:700;text-decoration:none;transition:transform .16s,box-shadow .16s,background-color .16s;display:inline-flex}.button:hover,.studio-button:hover{box-shadow:4px 4px 0 var(--ink);transform:translate(-1px,-1px)}.button:active,.studio-button:active{box-shadow:0 0 0 var(--ink);transform:translate(2px,2px)}.button.primary{background:var(--ink);color:var(--surface)}.button.cyan{background:var(--cyan);color:#fff;border-color:var(--ink)}.button.tomato{background:var(--tomato);color:#fff;border-color:var(--ink)}.button.mustard{background:var(--mustard-pale);color:var(--ink)}.button.full,.full{width:100%}.studio-button{background:var(--mustard-pale);box-shadow:none;border-radius:999px}.studio-button.is-unlocked{background:var(--cyan-pale)}.text-button{text-underline-offset:4px;min-height:44px;color:var(--ink);background:0 0;border:0;padding:8px;font-weight:700;text-decoration:underline}.text-button:hover{background:#25201d12}.text-button.danger{color:var(--danger)}.empty-layout{grid-template-columns:minmax(280px,.75fr) minmax(340px,1.25fr);align-items:center;gap:clamp(32px,7vw,88px);max-width:1240px;min-height:calc(100vh - 180px);margin:0 auto;padding:clamp(32px,7vw,88px) clamp(16px,5vw,64px);display:grid}.empty-copy{z-index:1;position:relative}.empty-copy h2{max-width:10ch;font-size:clamp(2.4rem,5.8vw,5rem)}.empty-copy>p:not(.kicker){max-width:52ch;font-size:1.16rem}.empty-copy .button{margin:16px 0}.privacy-note{color:var(--muted);font-size:.95rem!important}.kicker,.eyebrow,.rail-label{text-transform:uppercase;letter-spacing:.12em;color:var(--tomato);margin-bottom:8px;font-family:Atkinson,sans-serif;font-size:.78rem;font-weight:700}.hero-art{margin:0;position:relative;transform:rotate(1.2deg)}.hero-art:before{content:"";z-index:2;background:#f0dc82d1;border-left:1px dashed #25201d40;border-right:1px dashed #25201d40;width:110px;height:32px;position:absolute;top:-10px;left:50%;transform:translate(-50%)rotate(-2deg)}.hero-art img{border:2px solid var(--ink);background:var(--surface);aspect-ratio:3/2;object-fit:cover;box-shadow:9px 11px #25201d3d}.hero-art figcaption{text-align:right;color:var(--muted);margin-top:12px;font-family:Bitter,serif;font-size:.85rem}.board-shell{grid-template-columns:240px minmax(0,1fr);max-width:1560px;margin:0 auto;display:grid}.project-rail{border-right:2px solid var(--ink);background:#f2c7b647;flex-direction:column;justify-content:space-between;gap:40px;min-height:calc(100vh - 80px);padding:32px 20px 80px;display:flex}.project-rail ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.project-rail li button{text-align:left;background:0 0;border:2px solid #0000;flex-direction:column;justify-content:center;width:100%;min-height:56px;padding:8px 10px;display:flex}.project-rail li button[aria-current]{background:var(--surface);border-color:var(--ink);box-shadow:3px 3px 0 var(--ink)}.project-rail li span{white-space:nowrap;text-overflow:ellipsis;max-width:180px;font-weight:700;overflow:hidden}.project-rail li small{color:var(--muted)}.rail-actions{gap:8px;display:grid}.board{min-width:0;padding:clamp(24px,4vw,56px) clamp(16px,4vw,56px) 100px}.project-heading{justify-content:space-between;align-items:flex-start;gap:24px;max-width:1080px;margin:0 auto 32px;display:flex}.project-heading h2{margin-bottom:8px;font-size:clamp(2rem,4vw,3.6rem)}.project-heading p:not(.kicker){max-width:68ch;color:var(--muted);margin:0;font-size:1.1rem}.continuity-meter{border:2px solid var(--ink);background:var(--tomato-pale);max-width:1080px;box-shadow:var(--shadow);grid-template-columns:auto minmax(180px,1fr) auto;align-items:center;gap:24px;margin:0 auto 64px;padding:16px 20px;display:grid}.continuity-meter.is-complete{background:var(--cyan-pale)}.continuity-meter p{max-width:34ch;margin:0}.continuity-meter .eyebrow{color:#74261f}.meter{background:var(--surface);border:2px solid var(--ink);height:16px;overflow:hidden}.meter span{background:repeating-linear-gradient(90deg,var(--tomato),var(--tomato) 8px,#d85c4d 8px,#d85c4d 12px);height:100%;transition:width .24s;display:block}.is-complete .meter span{background:repeating-linear-gradient(90deg,var(--cyan),var(--cyan) 8px,#218c91 8px,#218c91 12px)}.board-section{content-visibility:auto;contain-intrinsic-size:500px;max-width:1080px;margin:0 auto;padding:0 0 72px}.section-heading{border-bottom:2px solid var(--ink);justify-content:space-between;align-items:end;gap:24px;margin-bottom:24px;padding-bottom:12px;display:flex}.section-heading>div{padding-left:54px;position:relative}.section-heading h2{margin-bottom:4px;font-size:1.9rem}.section-heading p:not(.section-number){color:var(--muted);margin:0}.section-number{background:var(--ink);width:38px;height:38px;color:var(--surface);place-items:center;font-family:Bitter,serif;font-weight:800;display:grid;position:absolute;top:-5px;left:0;transform:rotate(-3deg)}.reference-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;display:grid}.reference-card{border:2px solid var(--ink);background:var(--surface);box-shadow:var(--shadow);grid-template-columns:minmax(150px,.72fr) minmax(180px,1fr);min-height:260px;display:grid}.reference-art{background:var(--cyan-pale);border-right:2px solid var(--ink);min-height:230px;position:relative;overflow:hidden}.reference-art img{object-fit:cover;filter:saturate(.78)contrast(1.06);width:100%;height:100%}.reference-art:after{content:"";mix-blend-mode:multiply;pointer-events:none;background-image:radial-gradient(#006f7833 1px,#0000 1px);background-size:4px 4px;position:absolute;inset:0}.user-label{z-index:2;background:var(--surface);border:1px solid var(--ink);text-transform:uppercase;letter-spacing:.05em;padding:4px 7px;font-size:.7rem;font-weight:700;position:absolute;bottom:8px;left:8px}.reference-placeholder{place-items:center;height:100%;display:grid}.reference-placeholder span{color:var(--cyan);border:3px solid var(--cyan);padding:12px;font-family:Bitter,serif;font-size:3rem;font-weight:800;transform:rotate(-7deg)}.card-copy{flex-direction:column;align-items:flex-start;padding:20px;display:flex}.card-copy h3{font-size:1.45rem}.attribute-list{margin:0 0 16px;padding-left:20px}.attribute-list li::marker{color:var(--cyan)}.attribution{color:var(--muted);margin-top:auto;margin-bottom:4px;font-size:.82rem}.usage-count{color:var(--cyan);margin-bottom:0;font-size:.82rem;font-weight:700}.card-actions{flex-wrap:wrap;gap:8px;margin-top:8px;margin-left:-8px;display:flex}.muted{color:var(--muted)}.section-empty{border:2px dashed var(--cyan);background:#c5e3df59;align-items:center;gap:24px;padding:28px;display:flex}.empty-mark{color:var(--cyan);border-right:2px solid var(--cyan);padding:0 20px;font-family:Bitter,serif;font-size:4rem}.section-empty p{margin-bottom:4px}.section-empty-line{border:2px dashed var(--mustard);background:#f0dc8238;margin:0;padding:24px}.prop-list{border-top:2px solid var(--ink);margin:0;padding:0;list-style:none}.prop-list li{border-bottom:2px solid var(--ink);background:#fffaf099;justify-content:space-between;align-items:center;min-height:66px;padding:6px 8px;display:flex}.prop-list label{cursor:pointer;flex:1;align-items:center;gap:16px;min-height:52px;display:flex}.prop-list input{appearance:none;border:2px solid var(--ink);background:var(--surface);flex:0 0 30px;place-content:center;width:30px;height:30px;display:grid}.prop-list input:checked:after{content:"✓";color:var(--ink);font-size:1.5rem;font-weight:800;line-height:1}.prop-list .is-checked{background:var(--mustard-pale)}.prop-list .is-checked strong{text-decoration:line-through;text-decoration-thickness:2px}.prop-list span{flex-direction:column;display:flex}.prop-list small{color:var(--muted)}.panel-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;display:grid}.panel-card{border:2px solid var(--ink);background:var(--surface);min-height:230px;box-shadow:var(--shadow);grid-template-columns:76px minmax(0,1fr);display:grid}.panel-card.needs-link{border-color:var(--tomato)}.panel-number{background:var(--tomato-pale);border-right:2px solid var(--ink);justify-content:center;align-items:flex-start;padding-top:18px;display:flex}.panel-number span{writing-mode:vertical-rl;font-variant-numeric:tabular-nums;font-family:Bitter,serif;font-size:1.8rem;font-weight:800;transform:rotate(180deg)}.panel-copy{flex-direction:column;align-items:flex-start;min-width:0;padding:20px;display:flex}.panel-copy h3{min-height:2.5em}.link-row{flex-wrap:wrap;gap:6px;margin-top:auto;display:flex}.chip{border:1px solid var(--ink);background:var(--surface);padding:4px 8px;font-size:.78rem;font-weight:700}.ref-chip{background:var(--cyan-pale)}.prop-chip{background:var(--mustard-pale)}.warning-chip{background:var(--tomato-pale);color:#7d2018}.limit-note{color:var(--muted);font-weight:700}dialog{border:2px solid var(--ink);background:var(--surface);width:min(680px,100% - 24px);max-height:calc(100dvh - 32px);color:var(--ink);box-shadow:9px 9px 0 var(--ink);border-radius:0;padding:0;overflow:auto}dialog::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#25201db3}dialog form{gap:20px;padding:clamp(20px,5vw,40px);display:grid}.dialog-heading{border-bottom:2px solid var(--ink);padding-bottom:12px}.dialog-heading h2{font-size:2rem}.dialog-heading p:last-child{margin:0}dialog label{gap:6px;font-weight:700;display:grid}dialog input:not([type=checkbox]),dialog textarea{border:2px solid var(--ink);background:#fffef9;border-radius:0;width:100%;min-height:48px;padding:10px 12px}dialog textarea{resize:vertical}dialog input[type=file]{padding:8px}.form-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.optional,.field-help{color:var(--muted);font-size:.82rem;font-weight:400}.form-error{color:var(--danger);min-height:1px;margin:0;font-weight:700}.dialog-actions{justify-content:flex-end;gap:12px;padding-top:8px;display:flex}fieldset{border:2px solid var(--ink);padding:12px}legend{padding:0 6px;font-weight:700}.check-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.check-options label{background:var(--paper);align-items:center;gap:8px;min-height:44px;padding:6px;display:flex}.check-options input{width:22px;height:22px;accent-color:var(--cyan)}.check-options p{color:var(--muted);margin:4px}.dialog-close{background:0 0;border:0;width:44px;height:44px;font-size:2rem;line-height:1;position:absolute;top:10px;right:10px}.unlock-stamp{background:var(--tomato);color:#fff;border:3px double var(--surface);outline:2px solid var(--tomato);border-radius:50%;place-items:center;width:76px;height:76px;margin:0 auto -16px;font-family:Bitter,serif;font-size:2.3rem;font-weight:800;display:grid;transform:rotate(8deg)}.restore{border-top:2px dashed var(--ink);gap:12px;padding-top:20px;display:grid}.restore p{min-height:24px;margin:0}.legal-line{color:var(--muted);margin:0;font-size:.82rem}footer{border-top:2px solid var(--ink);min-height:92px;padding:24px clamp(16px,3vw,40px) max(24px,env(safe-area-inset-bottom));background:var(--ink);color:var(--surface);justify-content:space-between;gap:20px;display:flex}footer p{margin:0}footer nav{flex-wrap:wrap;gap:18px;display:flex}footer a{color:var(--surface)}.status-dock{z-index:15;pointer-events:none;position:fixed;bottom:16px;left:16px}.status-dock span{background:var(--surface);border:1px solid var(--ink);box-shadow:2px 2px 0 var(--ink);padding:6px 10px;font-size:.8rem;display:inline-block}.status-dock .is-error{background:var(--tomato-pale);color:var(--danger)}.toast{z-index:50;background:var(--cyan-pale);border:2px solid var(--ink);max-width:360px;box-shadow:var(--shadow);padding:14px;position:fixed;bottom:20px;right:20px}.toast button{background:0 0;border:0;min-height:44px;font-weight:700;text-decoration:underline}@media (max-width:980px){.masthead{align-items:flex-start;position:relative}.masthead-actions{max-width:520px}.network-state{display:none}.board-shell{display:block}.project-rail{border-right:0;border-bottom:2px solid var(--ink);flex-direction:row;min-height:auto;padding:12px 16px;display:flex;overflow-x:auto}.project-rail>div:first-child{align-items:center;gap:12px;display:flex}.project-rail .rail-label{display:none}.project-rail nav ul{display:flex}.project-rail li button{width:170px}.rail-actions{flex-shrink:0;display:flex}.rail-actions .button{width:auto}.continuity-meter{grid-template-columns:1fr 1fr}.continuity-meter>p{grid-column:1/-1}.reference-grid{grid-template-columns:1fr}}@media (max-width:720px){body{font-size:16px}.masthead{padding:10px 12px;display:block}.brand{margin-bottom:10px}.brand-mark{width:42px;height:42px}.masthead-actions{flex-wrap:nowrap;justify-content:flex-start;padding:2px 2px 6px;overflow-x:auto}.masthead-actions .text-button,.print-button,.studio-button{flex-shrink:0}.empty-layout{grid-template-columns:1fr;gap:44px;padding:48px 16px}.empty-copy h2{font-size:2.75rem}.hero-art{margin:0 8px}.board{padding:32px 12px 80px}.project-heading{display:block}.project-heading .button{margin-top:16px}.continuity-meter{grid-template-columns:1fr;gap:12px;margin-bottom:48px}.continuity-meter>p{grid-column:auto}.board-section{padding-bottom:56px}.section-heading{display:block}.section-heading .button{width:100%;margin-top:16px}.reference-card{grid-template-columns:1fr}.reference-art{border-right:0;border-bottom:2px solid var(--ink);height:250px}.panel-grid{grid-template-columns:1fr}.panel-card{grid-template-columns:58px minmax(0,1fr)}.section-empty{align-items:flex-start;padding:20px}.empty-mark{display:none}.form-grid,.check-options{grid-template-columns:1fr}.dialog-actions{grid-template-columns:1fr 1fr;display:grid}.dialog-actions .button{width:100%}footer{display:block}footer nav{margin-top:16px}}@media (max-width:420px){.masthead-actions .studio-button{display:none}.empty-copy h2{font-size:2.35rem}.project-rail{padding-bottom:10px}.rail-actions .text-button{display:none}.panel-copy{padding:16px}.card-actions{gap:0}.dialog-actions{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.button:hover,.studio-button:hover{transform:none}}@media print{@page{size:A4 portrait;margin:12mm}:root,body{color:#000;background:#fff;font-size:10pt}.skip-link,.masthead-actions,.project-rail,.status-dock,.toast,footer,.project-heading .button,.section-heading .button,.card-actions,.limit-note{display:none!important}.masthead{background:#fff;border:0;min-height:0;padding:0 0 7mm;position:static}.brand-mark{box-shadow:none}.brand small{color:#222}.board-shell{display:block}.board{padding:0}.project-heading{margin:0 0 5mm}.project-heading h2{font-size:24pt}.continuity-meter{box-shadow:none;break-inside:avoid;margin:0 0 8mm;padding:3mm}.meter{height:10px}.board-section{content-visibility:visible;contain:none;padding:0 0 8mm}.section-heading{margin-bottom:4mm}.section-heading h2{font-size:16pt}.reference-grid,.panel-grid{grid-template-columns:repeat(2,1fr);gap:4mm}.reference-card,.panel-card{box-shadow:none;break-inside:avoid;min-height:0}.reference-card{grid-template-columns:35% 65%}.reference-art{min-height:44mm}.card-copy,.panel-copy{padding:3mm}.attribute-list{margin-bottom:2mm}.attribution{color:#000;display:block!important}.panel-card{grid-template-columns:12mm 1fr}.panel-number{padding-top:3mm}.panel-number span{font-size:13pt}.panel-copy h3{min-height:0}.link-row{margin-top:2mm}.prop-list li{break-inside:avoid;min-height:10mm}.prop-list .text-button,dialog{display:none}}
