:root{
  --ink:#171717;
  --muted:#67635b;
  --paper:#fffef9;
  --paper-2:#f6f2e8;
  --yellow:#FFD700;
  --line:#242424;
  --shadow:0 14px 35px rgba(25,20,8,.10);
  --shadow-soft:0 8px 22px rgba(24,20,8,.06);
  --radius:18px;
  --max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--ink);
  background:var(--paper);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  line-height:1.58;
  background-image:radial-gradient(rgba(45,40,25,.055) .65px, transparent .65px);
  background-size:7px 7px;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button,input,select{font:inherit}
.wrap{width:min(calc(100% - 34px),var(--max));margin:auto}
.marker{background:linear-gradient(transparent 58%,rgba(255,215,0,.78) 58% 92%,transparent 92%)}
.nav{position:sticky;top:0;z-index:20;border-bottom:1px solid rgba(0,0,0,.09);background:rgba(255,254,249,.91);backdrop-filter:blur(14px)}
.nav-inner{height:70px;display:flex;align-items:center;gap:26px}
.brand{font-weight:850;font-size:1.15rem;margin-right:auto}.brand i{font-style:normal;background:var(--yellow);padding:1px 5px;border-radius:4px}
.nav-links{display:flex;gap:22px;font-size:.94rem}.nav-links a:hover{text-decoration:underline;text-decoration-thickness:2px;text-decoration-color:var(--yellow);text-underline-offset:5px}
.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:2px solid var(--ink);padding:11px 16px;border-radius:999px;font-weight:760;background:white;box-shadow:3px 3px 0 var(--ink);transition:.15s transform,.15s box-shadow;cursor:pointer}
.button:hover{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink)}
.button.yellow{background:var(--yellow)}
.button.ghost{box-shadow:none;border-width:1.5px;background:transparent}
.small-button{padding:8px 11px;font-size:.82rem}
.hero{padding:68px 0 38px}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:54px}
.eyebrow{font-size:.78rem;font-weight:850;text-transform:uppercase;letter-spacing:.13em;margin-bottom:13px}
.eyebrow:before{content:"";display:inline-block;width:31px;height:5px;background:var(--yellow);margin:0 8px 2px 0;transform:rotate(-2deg)}
.eyebrow.small{font-size:.7rem;margin-bottom:10px}
h1{font-size:clamp(3.2rem,7.4vw,6.6rem);line-height:.91;margin:.12em 0 .22em;letter-spacing:-.07em}
.hero p{font-size:clamp(1.05rem,1.7vw,1.28rem);max-width:690px;color:#35332f}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:29px}
.hero-note{margin-top:24px;display:flex;gap:9px;align-items:flex-start;color:var(--muted);font-size:.9rem}.hero-note b{color:var(--ink)}
.sketch-frame{position:relative;padding:12px;background:white;border:1px solid #ddd7c9;box-shadow:var(--shadow);transform:rotate(1.2deg)}
.sketch-frame:before,.sketch-frame:after{content:"";position:absolute;width:70px;height:18px;background:rgba(255,215,0,.48);top:-7px;transform:rotate(-6deg)}
.sketch-frame:before{left:10%}.sketch-frame:after{right:8%;transform:rotate(8deg)}
.sketch-frame img{aspect-ratio:1/1;object-fit:contain;background:#fff}
.promise-row{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:56px auto}
.promise{border-top:3px solid var(--ink);padding-top:15px}.promise .n{font:800 2rem/1 "Segoe Print",cursive;color:#bbb29f}.promise h3{margin:5px 0;font-size:1.2rem}.promise p{margin:0;color:var(--muted);font-size:.95rem}
.section{padding:70px 0}.section.paper2{background:rgba(246,242,232,.72);border-block:1px solid #e7e0d2}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:30px}.section-head h2{font-size:clamp(2rem,4vw,3.4rem);line-height:1;margin:0;letter-spacing:-.04em}.section-head p{max-width:580px;color:var(--muted);margin:0}
.method{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.method-step{background:white;border:1.5px solid var(--line);min-height:160px;padding:20px;position:relative}
.method-step:nth-child(2){transform:rotate(.5deg)}.method-step:nth-child(3){transform:rotate(-.5deg)}
.method-step .num{display:inline-grid;place-items:center;width:33px;height:33px;border:2px solid var(--ink);border-radius:50%;font-weight:800;background:var(--yellow)}
.method-step h3{margin:17px 0 5px}.method-step p{margin:0;color:var(--muted);font-size:.92rem}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.card{background:white;border:1px solid #ded8ca;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-soft);transition:.18s transform,.18s box-shadow}
.card:hover{transform:translateY(-5px) rotate(-.2deg);box-shadow:0 17px 34px rgba(24,20,8,.12)}
.card-media{padding:12px;background:#faf8f1}.card-media img{width:100%;aspect-ratio:1/1;object-fit:contain;background:white;border:1px solid #ece8df}
.card-body{padding:18px}
.category{font-size:.76rem;text-transform:uppercase;letter-spacing:.09em;font-weight:800;color:#706a5d}
.card h3{margin:7px 0 8px;font-size:1.28rem;line-height:1.1}.card p{margin:0;color:var(--muted);font-size:.91rem}
.tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:15px}
.tag{padding:4px 8px;border:1px solid #d9d2c3;border-radius:999px;font-size:.72rem;background:#fffefa}
.tag.yellow{border-color:#e7c900;background:#fff8b8}
.link-tag{display:inline-flex;align-items:center}
.category-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:13px}
.cat-card{min-height:150px;border:2px solid var(--ink);background:white;padding:15px;display:flex;flex-direction:column;gap:8px;justify-content:flex-start;box-shadow:3px 3px 0 var(--ink);transition:.15s}
.cat-card:hover{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink)}
.cat-card strong{font-size:1rem}.cat-card span{font-family:"Segoe Print",cursive;color:var(--muted);font-size:.8rem}.cat-card small{color:#7a7466;font-size:.74rem;margin-top:auto}
.cat-card:nth-child(3n+1) .dot,.cat-card:nth-child(3n+2) .dot{background:var(--yellow)}
.dot{width:12px;height:12px;border-radius:50%;border:2px solid var(--ink)}
.manifesto{padding:92px 0;text-align:center}.manifesto blockquote{font-family:"Segoe Print","Bradley Hand",cursive;font-size:clamp(2rem,5vw,4.6rem);line-height:1.16;max-width:1000px;margin:0 auto;letter-spacing:-.04em}.manifesto .underline{background:linear-gradient(transparent 64%,var(--yellow) 64% 88%,transparent 88%)}
.footer{border-top:1px solid #dcd5c8;padding:38px 0 52px;color:var(--muted);font-size:.9rem}.footer-row{display:flex;justify-content:space-between;gap:22px;align-items:center}.signature{font-family:"Segoe Print",cursive;color:var(--ink)}

/* home extras */
.map-preview-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.map-preview-card{background:white;border:1.5px solid var(--ink);padding:18px;box-shadow:3px 3px 0 var(--ink)}
.map-preview-card h3{margin:0 0 8px;font-size:1.15rem}
.map-preview-card p{margin:0;color:var(--muted);font-size:.92rem}
.map-preview-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.map-preview-links a{font-size:.82rem;padding:6px 9px;border:1px solid #ded4b4;border-radius:999px;background:#fffced}
.paths-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.path-card{background:white;border:1px solid #ddd4c2;border-radius:22px;padding:22px;box-shadow:var(--shadow-soft)}
.path-topline{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:#7a7366;font-weight:800}
.path-card h3{margin:8px 0 6px;font-size:1.42rem;line-height:1.08}
.path-card p{margin:0;color:var(--muted)}
.path-hook{font-family:"Segoe Print",cursive;color:var(--ink)!important;margin:0 0 10px!important;font-size:1.02rem}
.path-seq{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:16px}
.path-seq span{padding:6px 9px;border-radius:999px;background:#fffaf0;border:1px solid #e8dcc0;font-size:.78rem}
.path-seq i{font-style:normal;color:#9a8e6b}
.path-actions{margin-top:18px}

/* gallery */
.page-head{padding:55px 0 25px}.page-head h1{font-size:clamp(3rem,6vw,5.3rem);margin-bottom:.1em}.page-head p{max-width:760px;color:var(--muted);font-size:1.1rem}
.toolbar{display:grid;grid-template-columns:1.3fr .8fr .65fr;gap:11px;margin:25px 0 28px}.toolbar.four-cols{grid-template-columns:1.25fr .85fr .65fr .8fr}
.control{border:1.5px solid #bdb5a6;background:white;border-radius:12px;padding:12px 13px;outline:none;width:100%}.control:focus{border-color:var(--ink);box-shadow:0 0 0 3px rgba(255,215,0,.38)}.result-count{color:var(--muted);font-size:.9rem;margin:0 0 16px}

/* detail */
.detail{padding:45px 0 70px}.crumb{font-size:.85rem;color:var(--muted);margin-bottom:20px}.detail-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);gap:48px;align-items:start}.detail-title{font-size:clamp(2.5rem,5vw,4.8rem);line-height:.96;margin:.2em 0}.detail-payoff{font-family:"Segoe Print",cursive;font-size:1.45rem;line-height:1.35;margin:18px 0 25px}.meta{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.detail-figure{position:sticky;top:96px;background:white;padding:13px;border:1px solid #dcd5c8;box-shadow:var(--shadow);transform:rotate(.35deg)}.detail-figure img{width:100%;object-fit:contain}.content-block{border-top:2px solid var(--ink);padding:20px 0 8px;margin-top:24px}.content-block h2{font-size:1.25rem;margin:0 0 8px}.content-block p{margin:0 0 10px;color:#46423c}.quote{font-family:Georgia,serif;font-size:1.2rem;font-style:italic;padding-left:18px;border-left:7px solid var(--yellow);color:#302e2a}.related{margin-top:45px}.detail-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.problem-strip{padding:14px 16px;border:1.5px dashed #a89d7b;background:#fffdf2;border-radius:14px;margin:18px 0;color:#4d473b}
.path-aside{margin-top:20px;background:#fffdf5;border:1px solid #e6dcc5;padding:18px;border-radius:18px}.path-aside h3{margin:0 0 6px}.path-aside p{margin:0;color:var(--muted)}.path-nav{display:flex;flex-direction:column;gap:9px;margin-top:16px}.path-chip-row{display:flex;flex-wrap:wrap;gap:8px}

/* map */
.map-hero-panel{padding-bottom:44px}.map-diagram{display:flex;flex-direction:column;align-items:center;gap:10px;background:white;padding:28px;border:1px solid #ddd6c8;border-radius:24px;box-shadow:var(--shadow-soft)}
.map-box{display:inline-flex;align-items:center;justify-content:center;min-width:220px;padding:12px 18px;border:2px solid var(--ink);border-radius:999px;background:white;box-shadow:3px 3px 0 var(--ink);font-weight:800;letter-spacing:.04em}
.map-box.small{min-width:150px;font-size:.9rem}.map-box.hub,.map-box.visual{background:var(--yellow)}.map-box.alt{background:#fffef7}.map-arrow{font-size:1.5rem;line-height:1;color:#877d66}
.map-fan{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:6px}.map-side-notes{display:flex;gap:12px;justify-content:center;margin-top:8px}
.map-legend-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.map-row{display:flex;gap:16px;align-items:flex-start;padding:16px;background:white;border:1px solid #e0d9ca;border-radius:16px}.map-row span{min-width:90px;font-weight:850;letter-spacing:.08em}.map-row p{margin:0;color:var(--muted)}
.map-clusters{display:grid;gap:20px}.map-cluster{background:white;border:1px solid #ddd4c2;border-radius:22px;padding:24px;box-shadow:var(--shadow-soft)}.map-cluster-top{font-size:.78rem;text-transform:uppercase;letter-spacing:.11em;color:#7a7366;font-weight:800}.map-cluster h3{font-size:1.8rem;margin:6px 0 10px;line-height:1.03}.map-cluster p{margin:0;color:var(--muted)}.map-problem{margin-top:14px;padding:10px 12px;border-left:5px solid var(--yellow);background:#fffdf5;font-weight:600}.mini-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:18px}.mini-card{display:grid;grid-template-columns:88px 1fr;gap:12px;padding:12px;border:1px solid #e7e0d1;border-radius:16px;background:#fffefb}.mini-card img{width:88px;height:88px;object-fit:contain;background:white;border:1px solid #ece8df}.mini-card strong{display:block;margin:4px 0 6px;font-size:1rem;line-height:1.1}.mini-card span{display:block;font-size:.88rem;color:var(--muted)}
.small-empty{padding:20px}

/* paths */
.selected-path-panel{border-top:1px solid #e7e0d2}.path-focus-head{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:24px}.path-hook.large{font-family:"Segoe Print",cursive;font-size:1.2rem}.timeline{display:grid;gap:14px}.timeline-step{display:grid;grid-template-columns:56px 1fr;gap:14px;align-items:start}.timeline-num{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--yellow);border:2px solid var(--ink);font-weight:900}.timeline-card{background:white;border:1px solid #ded8ca;border-radius:18px;padding:18px;box-shadow:var(--shadow-soft)}.timeline-card h3{margin:6px 0 6px;font-size:1.2rem}.timeline-card p{margin:0;color:var(--muted)}.timeline-actions{margin-top:14px}

.empty{grid-column:1/-1;padding:55px;text-align:center;border:2px dashed #aaa28f;background:white}

@media (max-width:1060px){
  .map-preview-grid{grid-template-columns:repeat(2,1fr)}
  .category-grid{grid-template-columns:repeat(3,1fr)}
  .grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:900px){
  .hero-grid,.detail-grid,.path-focus-head{grid-template-columns:1fr;display:grid}
  .hero{padding-top:38px}
  .sketch-frame{max-width:620px;margin:auto}
  .promise-row{grid-template-columns:1fr}
  .method{grid-template-columns:1fr 1fr}
  .category-grid{grid-template-columns:1fr 1fr}
  .detail-figure{position:static;order:-1}
  .toolbar,.toolbar.four-cols{grid-template-columns:1fr 1fr}
  .toolbar .search{grid-column:1/-1}
  .nav-links{display:none}
  .paths-grid,.map-fan,.map-legend-grid,.mini-grid{grid-template-columns:1fr}
  .map-box.small,.map-box{min-width:unset;width:100%}
  .path-focus-head{gap:10px}
}
@media (max-width:560px){
  .wrap{width:min(calc(100% - 22px),var(--max))}
  .nav-inner{height:61px}
  .nav .button{padding:8px 11px;font-size:.8rem}
  h1{font-size:3.1rem}
  .section{padding:52px 0}
  .method,.grid,.category-grid,.map-preview-grid,.paths-grid,.mini-grid{grid-template-columns:1fr}
  .section-head{display:block}.section-head p{margin-top:12px}
  .toolbar,.toolbar.four-cols{grid-template-columns:1fr}
  .toolbar .search{grid-column:auto}
  .hero-actions .button,.path-focus-head .button,.detail-actions .button{width:100%}
  .footer-row{display:block}.footer-row .signature{margin-top:12px}
  .timeline-step{grid-template-columns:44px 1fr}
  .map-diagram{padding:18px}
}
/* RC1 production extras */
.top-progress{height:4px;background:linear-gradient(90deg,var(--yellow),#fff0 70%);position:fixed;top:0;left:0;z-index:40;width:100%;pointer-events:none}
.site-kicker{font-family:"Segoe Print",cursive;color:var(--muted);font-size:.85rem}
.hero-stat-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}.hero-stat{border:1px solid #d7d0c1;background:#fffdf5;border-radius:999px;padding:7px 11px;font-size:.83rem}.hero-stat b{color:var(--ink)}
.rc-hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center}.rc-hero h1{max-width:820px}
.feature-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:32px}.feature-item{padding:16px;border-top:3px solid var(--ink)}.feature-item b{display:block;margin-bottom:5px}.feature-item span{color:var(--muted);font-size:.9rem}
.gallery-shell{display:grid;grid-template-columns:260px 1fr;gap:26px;align-items:start}.filter-panel{position:sticky;top:92px;border:1px solid #ded7c8;background:white;padding:16px;border-radius:18px}.filter-panel h3{margin:0 0 14px}.filter-stack{display:grid;gap:10px}.gallery-main .grid{grid-template-columns:repeat(3,1fr)}
.favorite-btn{border:1px solid #cfc6b4;background:#fffdf6;border-radius:999px;padding:7px 10px;cursor:pointer;font-weight:700}.favorite-btn.active{background:var(--yellow);border-color:var(--ink)}
.card-wrap{position:relative}.card-wrap .favorite-btn{position:absolute;right:10px;top:10px;z-index:3;background:rgba(255,254,249,.95)}
.multi-image-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:18px}.multi-image-grid img{background:white;border:1px solid #ded8ca;padding:8px;box-shadow:var(--shadow-soft)}
.single-sketch-figure{background:white;border:1px solid #ded8ca;padding:12px;box-shadow:var(--shadow);transform:rotate(.25deg)}
.single-sketch-figure img{width:100%;height:auto;object-fit:contain}
.article-actions{display:flex;gap:10px;flex-wrap:wrap;margin:24px 0}.download-link{font-weight:800}
.source-note{font-size:.86rem;color:var(--muted);border-top:1px dashed #cfc7b7;padding-top:14px;margin-top:22px}
.bibliography-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.bib-section{background:white;border:1px solid #ddd5c5;border-radius:18px;padding:20px}.bib-section h2{font-size:1.4rem;margin:0 0 12px}.bib-item{border-top:1px solid #ece5d8;padding:13px 0}.bib-item:first-of-type{border-top:0}.bib-item p{margin:0;color:#39352f}.bib-why{font-size:.9rem;color:var(--muted)!important;margin-top:5px!important}
.about-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:35px}.about-card{border:2px solid var(--ink);padding:22px;background:#fff;box-shadow:5px 5px 0 var(--ink)}
.about-card .signature{font-size:1.25rem}.principles{display:grid;gap:12px}.principle{display:grid;grid-template-columns:48px 1fr;gap:12px;align-items:start}.principle .num{width:40px;height:40px;border:2px solid var(--ink);background:var(--yellow);border-radius:50%;display:grid;place-items:center;font-weight:900}.principle h3{margin:2px 0 4px}.principle p{margin:0;color:var(--muted)}
.category-page-head{padding:55px 0 30px}.category-page-head h1{font-size:clamp(2.8rem,6vw,5.2rem)}
.breadcrumbs{font-size:.84rem;color:var(--muted);margin:24px 0}.breadcrumbs a{text-decoration:underline;text-decoration-color:#d4be00;text-underline-offset:3px}
.page-nav-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.page-nav-card{border:1.5px solid var(--ink);padding:16px;background:#fff;box-shadow:3px 3px 0 var(--ink)}.page-nav-card b{display:block}.page-nav-card span{display:block;color:var(--muted);font-size:.88rem;margin-top:4px}
.search-hit{background:var(--yellow);padding:0 2px}
.no-js-note{padding:14px;border:1px dashed #b7ad98;background:#fffdf5;border-radius:12px;margin:15px 0}
@media (max-width:1050px){.gallery-shell{grid-template-columns:1fr}.filter-panel{position:static}.gallery-main .grid{grid-template-columns:repeat(2,1fr)}.rc-hero-grid,.about-grid{grid-template-columns:1fr}.bibliography-grid{grid-template-columns:1fr}}
@media (max-width:700px){.feature-strip,.page-nav-cards,.multi-image-grid{grid-template-columns:1fr}.gallery-main .grid{grid-template-columns:1fr}.hero-stat-row{gap:6px}}
