/* DrapePath shared visual system — home and privacy pages */
/* Design tokens */
:root {
  --background: #755c22;
  --surface: #9b7e3b;
  --text: #fbfbfb;
  --muted: #d8ddc6;
  --primary: #f4cd71;
  --secondary: #8986ea;
  --accent: #5abdf6;
  --on-primary: #15151b;
  --heading: 'Chakra Petch', sans-serif;
  --body: 'Barlow', sans-serif;
  --s1: .25rem; --s2: .5rem; --s3: .75rem; --s4: 1rem; --s5: 1.5rem; --s6: 2rem; --s7: 3rem; --s8: 4rem; --s9: 6rem; --s10: 8rem;
  --radius-sm: 0; --radius-md: 0; --radius-lg: 999px;
  --hairline: 1px solid color-mix(in srgb,var(--primary),transparent 65%);
  --shadow-low: 0 5px 12px #46340b33,0 1px 2px #f4cd7120;
  --shadow-mid: 0 14px 28px #46340b55,0 3px 6px #f4cd7120;
  --shadow-high: 0 28px 64px #46340b99,0 8px 16px #f4cd7130;
  --ease: cubic-bezier(.2,.8,.2,1);
  --header-height: 4.5rem;
}
/* Reset */
*,*::before,*::after{box-sizing:border-box}
html{font-size:clamp(16px,.55vw + 11px,22px);overflow-x:clip;scroll-behavior:smooth}
body{margin:0;overflow-x:clip;background:var(--background);color:var(--text)}
img,svg{max-width:100%}a{color:inherit}button,a{-webkit-tap-highlight-color:transparent}
::selection{background:var(--accent);color:var(--on-primary)}
/* Base typography */
body{font-family:var(--body);font-size:1rem;line-height:1.7;background-image:repeating-linear-gradient(135deg,transparent 0 35px,#f4cd7108 36px 37px)}
h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--heading);font-weight:700;line-height:1.16;letter-spacing:-.045em;text-wrap:balance}h2{font-size:clamp(2rem,4vw,3.5rem)}h3{font-size:clamp(1.2rem,2vw,1.55rem)}p{color:var(--muted);text-wrap:pretty}a:focus-visible{outline:3px solid var(--accent);outline-offset:5px}
/* Layout and container */
.container{width:min(100% - 2.5rem,1360px);margin-inline:auto}
.site-header{height:var(--header-height);position:relative;z-index:5;background:color-mix(in srgb,var(--background),transparent 9%);border-bottom:var(--hairline);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.header-inner{height:100%;width:min(100% - 2.5rem,1360px);margin:auto;display:flex;align-items:center;justify-content:space-between;gap:var(--s3)}
.brand{display:inline-flex;align-items:center;gap:var(--s3);min-width:0;text-decoration:none;font-family:var(--heading);font-weight:700;letter-spacing:-.035em;font-size:1.2rem}
.brand img{width:38px;height:38px;object-fit:contain;flex:none;border:1px solid #f4cd7155}
.brand span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Components */
.button{min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:var(--s3);padding:.75rem 1.5rem;border-radius:var(--radius-lg);background:var(--primary);color:var(--on-primary);font-family:var(--heading);font-weight:700;letter-spacing:.015em;text-decoration:none;box-shadow:var(--shadow-mid);border:1px solid #fbfbfb66;transition:transform .2s var(--ease),box-shadow .2s var(--ease)}
.button:hover{transform:translateY(-3px);box-shadow:var(--shadow-high)}.button:active{transform:translateY(1px)}.button--small{min-height:44px;padding:.55rem 1.1rem;font-size:.83rem}
.eyebrow{font-family:var(--heading);font-weight:600;font-size:.8125rem;letter-spacing:.24em;color:var(--primary)}
.skip-link{position:fixed;z-index:40;top:-100px;left:var(--s4);background:var(--primary);color:var(--on-primary);padding:var(--s3)}.skip-link:focus{top:var(--s4)}
/* Page sections */
.hero{--hs:1;height:100vh;height:100svh;height:100dvh;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);position:relative;isolation:isolate}
.hero__content{position:relative;min-height:0;display:flex;align-items:center;justify-content:center;overflow:clip;padding:calc(var(--hs)*min(3svh,32px)) 5vw}
.hero__scene{position:absolute;inset:0;overflow:clip;pointer-events:none;background:linear-gradient(145deg,#9b7e3b 0%,#9b7e3b 47%,#755c22 47.1%,#755c22 100%)}
.hero__scene::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 22% 26%,#f4cd713d,transparent 44%),radial-gradient(ellipse at 78% 72%,#5abdf63a,transparent 44%)}
.hero__scene::after{content:'';position:absolute;left:-10%;top:52%;width:125%;height:1px;background:linear-gradient(90deg,transparent,var(--primary),transparent);transform:rotate(-33deg);box-shadow:0 0 18px #f4cd7155}
.hero__copy{position:relative;z-index:2;max-width:1100px;width:100%;text-align:right;align-self:center;transform:translateX(2%);padding-left:40%;animation:appear .85s var(--ease) both}
.hero__kicker{font-size:calc(var(--hs)*clamp(12px,min(1.4vw,2svh),19px));letter-spacing:.3em;color:var(--primary);font-family:var(--heading);font-weight:600;margin-bottom:calc(var(--hs)*min(2svh,24px))}
.hero h1{font-size:calc(var(--hs)*clamp(36px,min(9vw,12svh),148px));line-height:.95;letter-spacing:-.08em;margin-bottom:calc(var(--hs)*min(3svh,32px));overflow-wrap:anywhere}
.gradient-word{color:var(--primary);background:linear-gradient(110deg,var(--primary),var(--accent),var(--primary),var(--secondary));background-size:240% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:gradient-flow 8s linear infinite}
.hero h1::after{content:'';position:absolute;inset:12% 0 45% 30%;pointer-events:none;background:linear-gradient(100deg,transparent 45%,#fbfbfb50 50%,transparent 55%);transform:translateX(-160%);animation:light-sweep 1.6s ease-out .3s both}
.hero__line{font-size:calc(var(--hs)*clamp(16px,min(2vw,3svh),26px));max-width:24em;margin-left:auto;line-height:1.4;margin-bottom:calc(var(--hs)*min(3svh,32px))}
.sculpture{position:absolute;left:8%;top:50%;width:min(41vw,55svh);aspect-ratio:1;transform:translateY(-50%) rotate(-13deg);filter:drop-shadow(12px 24px 24px #46340b88);perspective:1000px}
.sculpture__ring{position:absolute;inset:8%;border:clamp(15px,3vw,48px) solid transparent;border-radius:50%;background:linear-gradient(135deg,#fbfbfb,#8986ea 22%,#5abdf6 40%,#f4cd71 62%,#9b7e3b 84%,#fbfbfb) border-box;-webkit-mask:linear-gradient(#fff 0 0) padding-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;box-shadow:inset 0 0 16px #fbfbfb44;transform:rotateX(23deg) rotateY(-20deg)}
.sculpture__fan{position:absolute;left:11%;top:8%;width:75%;height:76%;background:repeating-conic-gradient(from 180deg at 10% 90%,#f4cd71 0 7deg,#9b7e3b 8deg 11deg,#755c22 12deg 14deg);clip-path:polygon(0 100%,10% 15%,75% 0,100% 40%,100% 100%);opacity:.9}
.sculpture__ribbon{position:absolute;left:39%;top:4%;width:28%;height:91%;border:2px solid var(--primary);transform:rotate(42deg);background:linear-gradient(90deg,#f4cd71aa,#5abdf688,#8986ea88);clip-path:polygon(0 0,100% 0,80% 100%,22% 100%);box-shadow:var(--shadow-high)}
.sculpture__base{position:absolute;bottom:5%;left:0;width:100%;height:1px;background:var(--primary);box-shadow:0 5px 10px #f4cd7180}
.story-section{padding:clamp(64px,10vw,128px) 0;min-height:85svh;border-top:1px solid #f4cd7130;position:relative}
.story-section:nth-child(even){background:color-mix(in srgb,var(--surface),var(--background) 50%)}
.section-heading{max-width:63rem;margin-bottom:var(--s7)}.section-heading h2{max-width:18ch;margin-bottom:var(--s5)}.section-intro{font-size:1.16rem;line-height:1.8;max-width:60rem}
.ticket-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s5)}
.ticket{--glare-x:50%;--glare-y:50%;padding:var(--s6);min-width:0;position:relative;isolation:isolate;border:var(--hairline);box-shadow:var(--shadow-low);background:radial-gradient(circle at var(--glare-x) var(--glare-y),#f4cd711b,transparent 50%),linear-gradient(145deg,#9b7e3b,#755c22);clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% calc(50% - 12px),calc(100% - 12px) 50%,100% calc(50% + 12px),100% 100%,12px 100%,0 calc(100% - 12px));transition:transform .2s var(--ease),box-shadow .2s var(--ease);transform-style:preserve-3d}
.ticket::before{content:'';position:absolute;inset:7px;border:1px solid #f4cd7138;pointer-events:none;clip-path:inherit}
.ticket:hover{transform:translateY(-3px);box-shadow:var(--shadow-mid)}.ticket h3{margin:var(--s3) 0}.ticket p{margin:0}.ticket__icon{position:relative;font-size:2.5rem;color:var(--primary);line-height:1}.ticket__icon i{position:absolute;width:7px;height:7px;background:var(--accent);border-radius:50%;left:2.2rem;bottom:0}
.offset-layout{display:grid;grid-template-columns:1fr 2fr;gap:var(--s7)}.offset-layout__mark{position:sticky;top:var(--s7);height:max-content}.huge-number{font-family:var(--heading);font-size:clamp(3rem,9vw,8rem);font-weight:700;line-height:1.1;color:var(--primary);letter-spacing:-.07em}
.deco-fan{width:min(20vw,220px);aspect-ratio:1;background:repeating-conic-gradient(from 175deg at 0 100%,transparent 0deg 8deg,var(--primary) 9deg 10deg);border-bottom:1px solid var(--primary);opacity:.7;margin-top:var(--s7)}
.timeline{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:var(--s6)}.timeline::before{content:'';position:absolute;top:0;bottom:0;left:50%;width:1px;background:var(--primary)}.timeline .ticket:nth-child(even){grid-column:2}.timeline .ticket:nth-child(odd){grid-column:1}.timeline .ticket:nth-child(3){grid-row:2}.timeline .ticket:nth-child(4){grid-row:2}.timeline .ticket:nth-child(5){grid-row:3}
.shield-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:var(--s7);align-items:start}.shield-art{position:sticky;top:var(--s7);min-height:440px;display:grid;place-items:center;overflow:clip;border:var(--hairline);background:radial-gradient(circle at 50% 35%,#5abdf67a,transparent 65%)}.shield-art__core{display:grid;place-items:center;font-family:var(--heading);font-size:8rem;color:var(--primary);width:65%;aspect-ratio:.9;clip-path:polygon(50% 0,95% 20%,88% 75%,50% 100%,12% 75%,5% 20%);background:linear-gradient(120deg,#8986ea99,#f4cd71a0,#5abdf688);border:1px solid var(--primary);text-shadow:var(--shadow-mid)}
.rights-layout{display:grid;grid-template-columns:1fr 2fr;gap:var(--s7)}.rights-intro{position:sticky;top:var(--s7);height:max-content}.rights-intro p{max-width:20rem;margin-top:var(--s6)}
.closing{padding:var(--s9) 0;background:linear-gradient(115deg,#9b7e3b,#755c22 60%,#8986ea44);border-block:var(--hairline)}.closing__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--s7)}.closing h2{margin:0 0 var(--s3)}.closing p{max-width:35rem}.closing .button{flex:none}
.site-footer{padding:var(--s8) 0 var(--s6);background:color-mix(in srgb,var(--background),var(--surface) 30%)}.footer-inner{display:flex;justify-content:space-between;gap:var(--s7)}.footer-inner p{margin:var(--s4) 0 0}.footer-right{display:flex;flex-direction:column;gap:var(--s2);text-align:right;color:var(--muted);font-size:.875rem}.footer-right a{color:var(--primary)}
.privacy-page{padding:var(--s8) 0 var(--s9)}.privacy-title{display:flex;justify-content:space-between;gap:var(--s7);align-items:center;max-width:1100px;margin:0 auto var(--s7);padding-bottom:var(--s6);border-bottom:var(--hairline)}.privacy-title h1{font-size:clamp(2.25rem,5vw,5rem);margin:0}.privacy-meta{border:var(--hairline);padding:var(--s5);display:grid;gap:var(--s2);min-width:220px;background:var(--surface);box-shadow:var(--shadow-low)}.privacy-meta strong{font-family:var(--heading);font-size:1.2rem}.privacy-meta span{font-size:.875rem;color:var(--muted)}
.legal-text{max-width:760px;margin-inline:auto;color:var(--text)}.legal-text h2{font-size:clamp(1.45rem,2.4vw,2rem);margin:var(--s8) 0 var(--s5);padding-top:var(--s4);border-top:var(--hairline)}.legal-text p,.legal-text li{color:var(--text);font-size:1rem;line-height:1.85}.legal-text p{margin-bottom:var(--s4)}.legal-text ul{padding-left:var(--s6);margin-bottom:var(--s5)}.legal-text li{padding-left:var(--s2);margin-bottom:var(--s2)}.legal-text strong{color:var(--primary)}.legal-text code{font-family:var(--body);background:#9b7e3b;padding:0 .25em}
/* Utilities */
.reveal{opacity:1}.has-js .reveal{opacity:0;transform:translateY(22px) rotateX(2deg);transition:opacity .65s var(--ease),transform .65s var(--ease)}.has-js .reveal.is-visible{opacity:1;transform:none}
/* Responsive rules */
@media(min-width:768px){.container,.header-inner{width:min(100% - 4rem,1360px)}}
@media(min-width:1280px){.container,.header-inner{width:min(100% - 6rem,1360px)}}
@media(max-width:1023px){.offset-layout,.rights-layout,.shield-layout{grid-template-columns:1fr}.offset-layout__mark,.rights-intro,.shield-art{position:relative;top:auto}.offset-layout__mark{display:none}.shield-art{min-height:260px;max-height:330px}.rights-intro .huge-number{font-size:3.5rem}}
@media(max-width:767px){:root{--header-height:4rem}.brand{font-size:1rem}.brand img{width:34px;height:34px}.button--small{padding:.5rem .8rem}.hero__scene{background:linear-gradient(145deg,#9b7e3b 0%,#9b7e3b 43%,#755c22 43.2%)}.sculpture{left:3%;top:33%;width:min(75vw,33svh);opacity:.8}.hero__copy{padding:0;text-align:center;transform:none;align-self:end;margin-bottom:min(9svh,64px)}.hero__kicker{font-size:calc(var(--hs)*11px);letter-spacing:.12em}.hero h1{font-size:calc(var(--hs)*clamp(32px,min(11vw,9svh),65px));margin-bottom:calc(var(--hs)*min(2svh,16px))}.hero__line{margin-inline:auto;max-width:20em;font-size:calc(var(--hs)*clamp(14px,2svh,18px))}.ticket-grid,.timeline{grid-template-columns:1fr}.timeline::before{left:0}.timeline .ticket:nth-child(n){grid-column:auto;grid-row:auto}.ticket{padding:var(--s5)}.closing__inner,.footer-inner,.privacy-title{flex-direction:column;align-items:stretch}.footer-right{text-align:left}.privacy-meta{min-width:0}.privacy-page{padding:var(--s7) 0}.story-section{min-height:auto}.shield-art{display:none}}
@media(max-height:600px){.hero__content{display:grid;grid-template-columns:1fr 1fr}.hero__copy{grid-column:2;text-align:left;align-self:center;padding-left:0;margin:0}.hero__line{margin-left:0}.sculpture{left:8%;top:50%;width:min(35vw,36svh)}.hero h1{font-size:calc(var(--hs)*min(7vw,10svh))}}
@media(max-height:420px){.sculpture{display:none}.hero__content{grid-template-columns:1fr}.hero__copy{grid-column:1;max-width:850px;margin:auto;text-align:center}.hero__line{margin-inline:auto}.hero h1{font-size:calc(var(--hs)*min(8vw,14svh))}}
@media(max-width:360px){.brand{font-size:.9rem}.hero__kicker{letter-spacing:.08em}}
/* Motion and reduced-motion */
@keyframes appear{from{opacity:0;transform:translate(2%,12px)}to{opacity:1;transform:translate(2%,0)}}
@keyframes gradient-flow{to{background-position:240% 0}}
@keyframes light-sweep{to{transform:translateX(160%)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none;transition:none}.has-js .reveal{opacity:1;transform:none}}
/* Print */
@media print{.site-header,.site-footer,.button{display:none}.legal-text{max-width:none}.privacy-page{padding:0}body{background:white;color:#222}.legal-text p,.legal-text li,.legal-text h2{color:#222}}
