@font-face{font-family:Bricolage;src:url('./structures/bricolagegrotesque.ttf')}@font-face{font-family:DM;src:url('./structures/dmsans.ttf')}
#campaign-viewer{position:fixed;inset:0;z-index:20;padding:22px 30px 38px;display:flex;flex-direction:column;align-items:center;background:#16364100;transition:background .5s;font-family:DM,system-ui,sans-serif;color:#283c3b;perspective:1600px}
#campaign-viewer[hidden]{display:none}#campaign-viewer.is-open{background:#16364170;backdrop-filter:blur(5px)}
.campaign-sheet{position:relative;width:min(1360px,100%);height:100%;overflow:hidden;background:#fbf8ef;border:1px solid #e4dcc4;border-radius:8px;box-shadow:0 0 35px #a8ebf066,0 24px 100px #18373566;opacity:0;transform:translateY(30vh) rotateX(12deg) scale(.86);transform-origin:50% 100%;transition:transform .55s cubic-bezier(.16,1,.3,1),opacity .4s}
.is-open .campaign-sheet{opacity:1;transform:translateY(0) rotateX(0) scale(1)}
.campaign-bar{height:65px;padding:0 32px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #d5cdbb;background:#fbf8eff5}.campaign-bar>span{font-size:10px;letter-spacing:.16em;font-weight:700}.campaign-close{border:1px solid #b3b7a7;background:transparent;border-radius:30px;padding:10px 17px;font-size:12px}.campaign-close:hover{background:#e6ece2}.campaign-close span{font-size:18px;margin-left:12px}
.campaign-scroll{height:calc(100% - 65px);overflow:auto;overscroll-behavior:contain;scrollbar-color:#b6bca9 transparent;outline:none}.campaign-content{max-width:1200px;margin:auto;padding:52px 52px 0}.campaign-hero h1{font-family:Bricolage,sans-serif;font-size:clamp(44px,5.5vw,80px);font-weight:650;letter-spacing:-.055em;line-height:1.03;margin:15px 0 21px;max-width:900px}.campaign-brand{text-transform:uppercase;letter-spacing:.22em;font-size:11px;font-weight:700;margin:0;color:#698278}.campaign-sentence{font-size:clamp(18px,2vw,24px);line-height:1.4;margin:0;max-width:760px}.campaign-intro{font-size:14px;line-height:1.6;color:#64706a;max-width:650px;margin:12px 0 0}.campaign-strategy{display:grid;grid-template-columns:1fr 1fr 1.25fr;gap:32px;margin-top:42px;padding:26px 0 34px;border-top:1px solid #cdd2c2;border-bottom:1px solid #cdd2c2}.campaign-strategy h2{font-size:12px;font-weight:750;margin:0 0 12px}.campaign-strategy p{font-size:14px;line-height:1.65;margin:0}.campaign-block{margin:48px 0 72px}.campaign-block>h2{font-family:Bricolage,sans-serif;font-size:30px;font-weight:550;letter-spacing:-.035em;margin:0 0 22px}.campaign-block>p{line-height:1.7}.campaign-media{display:grid;gap:24px;align-items:start}.campaign-media.pair{grid-template-columns:repeat(2,minmax(0,1fr))}.campaign-media.trio{grid-template-columns:repeat(3,minmax(0,1fr))}.campaign-media figure{margin:0;min-width:0}.campaign-media img,.campaign-media video{display:block;width:100%;height:auto;border-radius:4px}.campaign-media video{background:#182326;max-height:75vh}.campaign-media.pair img{max-height:650px;object-fit:contain}.campaign-media.trio video{aspect-ratio:9/16;object-fit:contain}.campaign-end{max-width:1096px;margin:0 auto;padding:25px 0 40px;border-top:1px solid #cdd2c2;display:flex;justify-content:space-between;align-items:center;font-size:13px;color:#68766c}.campaign-exit-hint{font-size:10px;color:#fff9ec;margin:10px 0 0;letter-spacing:.04em}.campaign-progress{position:absolute;bottom:0;left:0;width:100%;height:3px;background:#87c8c6;transform:scaleX(0);transform-origin:left}.campaign-reading .intro,.campaign-reading .tools,.campaign-reading .hint,.campaign-reading #status,.campaign-reading #context{visibility:hidden}
@media(max-width:700px){#campaign-viewer{padding:10px 10px 24px}.campaign-bar{height:60px;padding:0 15px}.campaign-bar>span{font-size:8px;max-width:90px}.campaign-content{padding:32px 22px 0}.campaign-strategy{grid-template-columns:1fr;gap:22px;margin-top:28px}.campaign-media{gap:10px}.campaign-media.pair{grid-template-columns:1fr}.campaign-block{margin:36px 0 46px}.campaign-block>h2{font-size:25px}.campaign-end{margin:0 22px;gap:14px}.campaign-exit-hint{display:none}.campaign-sentence{font-size:19px}.campaign-media.trio video{min-height:0}.campaign-close{font-size:11px;padding:8px 12px}}
@media(prefers-reduced-motion:reduce){#campaign-viewer,.campaign-sheet{transition:opacity .12s;transform:none}}
.campaign-drawer{position:fixed;inset:0 auto 0 0;margin:0;height:100dvh;max-height:none;width:min(390px,90vw);max-width:none;padding:32px;border:0;background:#fbf8ef;color:#283c3b;font-family:DM,system-ui;box-shadow:10px 0 50px #283c3b22}.campaign-drawer[open]{display:flex;flex-direction:column;animation:drawer-enter .35s ease-out}.campaign-drawer::backdrop{background:#213b4055;backdrop-filter:blur(3px)}.campaign-drawer header{display:flex;justify-content:space-between;align-items:center}.campaign-drawer h2{font:600 38px Bricolage;margin:0}.campaign-drawer button{background:none;border:0}.campaign-drawer header button{font-size:26px}.campaign-drawer nav{margin:32px 0;overflow:auto}.campaign-drawer nav button{display:flex;width:100%;align-items:center;justify-content:space-between;text-align:left;padding:17px 0;border-top:1px solid #d6d8ca;font:550 23px Bricolage;animation:name-enter .36s both;animation-delay:var(--delay)}.campaign-drawer nav button:disabled{color:#727b70;cursor:default}.campaign-drawer small{font:11px DM}.campaign-drawer a{margin-top:auto;color:#516358;font-size:12px;width:fit-content}.campaign-reading .menu-toggle{visibility:hidden}@keyframes drawer-enter{from{transform:translateX(-100%)}}@keyframes name-enter{from{opacity:0;transform:translateX(-14px)}}@media(prefers-reduced-motion:reduce){.campaign-drawer[open],.campaign-drawer nav button{animation:none}}
/* A paper sheet grows from the screen position of the approach pad. */
.campaign-sheet{transform:translate(var(--launch-x,0px),var(--launch-y,30vh)) rotateX(35deg) scale(.045);filter:blur(6px);transition:transform .7s cubic-bezier(.18,.8,.2,1),opacity .28s,filter .55s;transform-origin:center}.is-open .campaign-sheet{filter:blur(0);transform:translate(0,0) rotateX(0) scale(1)}
.campaign-drawer{width:min(470px,92vw);padding:40px 36px;background:radial-gradient(ellipse at 0 10%,#bfdcd659,transparent 60%),linear-gradient(135deg,#fcf9ec,#e9ebdc);border-right:1px solid #fafde2;box-shadow:20px 0 100px #102e3c66}.campaign-drawer::before{content:'';position:absolute;width:190px;height:190px;border:1px solid #b0c8b066;border-radius:50%;right:-90px;bottom:60px;box-shadow:0 0 0 25px #b0c8b019,0 0 0 65px #b0c8b010;pointer-events:none}.campaign-drawer nav button{padding:21px 10px;border-color:#9fab963d;transform-origin:left;transition:transform .22s,color .22s,background .22s;animation-name:menu-name-enter;animation-duration:.5s;animation-timing-function:cubic-bezier(.2,.75,.25,1);font-size:29px;border-radius:4px}.campaign-drawer nav button:hover{transform:scale(1.045);color:#224f4a;background:#a9cfc32b}.campaign-drawer nav button:disabled{opacity:.65}.campaign-drawer nav button small{font-size:10px;letter-spacing:.04em}.campaign-drawer[open]{animation-duration:.5s}.campaign-drawer header{padding-bottom:20px;border-bottom:1px solid #adbba566}.campaign-drawer h2{font-size:43px;letter-spacing:-.045em}.campaign-drawer a{letter-spacing:.1em;text-transform:lowercase;position:relative}.campaign-drawer nav{margin-top:22px}@keyframes menu-name-enter{from{opacity:0;translate:-75px 0}to{opacity:1;translate:0 0}}@media(prefers-reduced-motion:reduce){.campaign-sheet{transform:none;filter:none;transition:opacity .1s}.campaign-drawer nav button{animation:none}}
.campaign-block-tree{padding:35px 0}.content-box{width:100%;min-width:0}.content-box[data-width=narrow]{max-width:600px;margin-left:auto;margin-right:auto}.content-box[data-width=default]{max-width:850px;margin-left:auto;margin-right:auto}.content-columns{display:grid;grid-template-columns:var(--columns);gap:24px;align-items:start}.content-box img,.content-box video{display:block;width:100%;height:auto;border-radius:4px}.content-box video{background:#182326}.content-box h2{font:550 30px Bricolage;letter-spacing:-.035em;margin:20px 0}.content-box p,.content-box blockquote{font:400 16px/1.75 DM;white-space:pre-wrap}.content-box blockquote{font-size:26px;border-left:2px solid #82aaa1;padding-left:22px}.content-box figcaption{font-size:12px;margin-top:9px;color:#64756b}.content-box hr{border:0;border-top:1px solid #cdd2c2}@media(max-width:650px){.content-columns{gap:12px;grid-template-columns:1fr}.content-box h2{font-size:25px}}
