/* Creative polish layer: brand, calendar HUD, detail panel, credits.
   Loaded after menu-experiment.css and never touches the menu itself. */
:root{--pink:#ff537d;--ink:#031443;--caps:'Barlow Condensed','Noto Sans SC',sans-serif}

/* Brand: emblem + Rodin wordmark, matching the menu's type. */
.brand{gap:12px}
.brand-mark{width:54px;height:54px;flex-shrink:0;color:#1d384a;--emblem-moon:#fff;transition:transform .25s cubic-bezier(.2,.8,.2,1)}
.brand:hover .brand-mark,.brand:focus-visible .brand-mark{transform:rotate(-8deg) scale(1.06)}
.brand-name{display:flex;flex-direction:column}
.brand-name b{font:800 25px/1 'Menu Rodin',var(--font);letter-spacing:-.07em}
.brand-name>span{font:700 9px/1 var(--font);letter-spacing:3.2px;margin-top:7px}

/* Calendar HUD: date + weekday, time-slot band, real moon phase. */
.date{display:grid;grid-template-columns:auto auto;align-items:center;justify-items:end;column-gap:12px;row-gap:8px}
.date .moon{width:50px;height:50px;margin:0;overflow:visible;filter:drop-shadow(0 0 10px rgba(255,251,200,.6))}
.moon-shadow{fill:rgba(3,20,67,.5)}
.moon-lit{fill:#fffbd6}
.date .date-stack{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.date-row{display:flex;align-items:flex-end;gap:8px}
.date-row strong{font:800 italic 60px/.78 var(--font);letter-spacing:-2px;color:#f2ffff;text-shadow:3px 3px 0 #0a3fd6}
.date .date-row strong span{font:500 italic 44px/.78 var(--font);margin:0 2px;letter-spacing:0;color:var(--cyan)}
.date .date-row b{font:800 19px/1 var(--font);letter-spacing:1px;background:var(--ink);color:#fff;padding:3px 7px 2px;transform:skewX(-10deg);margin-bottom:1px}
.date[data-day=sun] .date-row b{background:#e8002f}
.date[data-day=sat] .date-row b{background:#0649ed}
.daytime-band{display:block;align-self:stretch;text-align:right;background:#fff;color:var(--ink);padding:4px 12px 3px 24px;clip-path:polygon(9% 0,100% 0,100% 100%,0 100%)}
.date .daytime-band span{font:800 italic 13px/1 var(--font);letter-spacing:2.4px}
.date{position:relative;cursor:default}
/* Moon details stay out of the way until the calendar is hovered. */
.moon-note{position:absolute;right:0;top:calc(100% + 10px);white-space:nowrap;font:700 9px/1 var(--font);letter-spacing:1.8px;color:#fff;background:var(--ink);padding:5px 9px 4px;clip-path:polygon(4% 0,100% 0,96% 100%,0 100%);opacity:0;translate:0 -4px;transition:opacity .18s,translate .18s;pointer-events:none}
.date:hover .moon-note{opacity:1;translate:0 0}
/* 00:00–01:00 is the Dark Hour; twilight gets the site's own name. */
.date[data-slot=dark-hour] .daytime-band{background:#3cff8a;color:#03200e}
.date[data-slot=dark-hour] .date-row strong{color:#d4ffe1;text-shadow:3px 3px 0 #0b6b31}
.date[data-slot=dark-hour] .moon-lit{fill:#eaff7a}
.date[data-slot=blue-hour] .daytime-band{background:var(--pink);color:#fff}

/* Welcome + menu caption */
.welcome .eyebrow>span{background:var(--ink);color:#fff;border:0;padding:3px 6px 2px;margin-right:9px}
.home-caption .caption-mark{width:28px;height:28px;flex-shrink:0;color:#fff;--emblem-moon:#0649ed;animation:caption-mark 3.2s ease-in-out infinite}
@keyframes caption-mark{50%{transform:rotate(-7deg) scale(1.08)}}

/* Detail panel: a slanted navy slab on a pink plate, white title band. */
.detail{--pad-l:40px;background:none;backdrop-filter:none;border:0;box-shadow:none;padding:22px 34px 0 var(--pad-l);overflow:visible;animation:none}
.detail:before{content:none}
.detail-plate,.detail-bg{position:absolute;inset:0;pointer-events:none;clip-path:polygon(3% 0,100% 1.6%,98.4% 100%,0 98%)}
.detail-plate{z-index:-2;background:var(--pink);--plate:14px;transform:translate(var(--plate),var(--plate));animation:plate-in .46s .12s cubic-bezier(.3,1.5,.5,1) both}
.detail-bg{z-index:-1;overflow:hidden;backdrop-filter:blur(16px);background:repeating-linear-gradient(115deg,transparent 0 22px,rgba(120,250,255,.035) 22px 23px),linear-gradient(115deg,transparent 58%,rgba(120,250,255,.07) 58% 71%,transparent 71%),linear-gradient(165deg,rgba(8,46,160,.97),rgba(2,14,66,.98) 72%)}
.detail-watermark{position:absolute;right:-1%;bottom:-7%;font:900 italic min(26vw,330px)/.8 var(--font);letter-spacing:-.04em;color:transparent;-webkit-text-stroke:2px rgba(120,250,255,.13)}
.panel-head{margin-bottom:12px}
#detail-index{font:700 12px var(--font);letter-spacing:3px}
.close-button span{background:#fff;color:var(--ink);border:0;padding:2px 5px}
.title-band{position:relative;isolation:isolate;align-self:flex-start;flex-shrink:0;display:flex;align-items:flex-end;gap:16px;margin:0 0 22px calc(-1 * var(--pad-l) - 22px);padding:9px 34px 11px calc(var(--pad-l) + 22px);animation:band-in .42s .2s cubic-bezier(.2,1.3,.4,1) both}
.title-band::before,.title-band::after{content:'';position:absolute;inset:0}
.title-band::before{z-index:-1;background:#fff;clip-path:polygon(0 7%,100% 0,95% 100%,1.5% 93%)}
.title-band::after{z-index:-2;background:var(--pink);clip-path:polygon(6% 34%,100% 8%,97% 100%);transform:translate(10px,8px)}
.detail .title-band h1{margin:0;padding-right:.12em;font:800 clamp(40px,4.1vw,70px)/1 'Menu Rodin',var(--font);letter-spacing:-.12em;color:#000}
.title-kicker{font:700 11px/1.2 var(--caps);letter-spacing:2px;color:var(--ink);white-space:nowrap;margin-bottom:.45em}
.detail-scroll{padding-right:14px;scrollbar-color:#fff rgba(255,255,255,.08)}
.panel-foot{margin-top:12px;border-color:rgba(105,222,255,.2)}
.pager{display:flex;gap:5px}
.pager i{width:16px;height:4px;background:rgba(120,250,255,.28);transform:skewX(-30deg);transition:width .2s}
.pager i.on{width:30px;background:#fff}
/* Entrance: slashes cut the screen, the slab unrolls from the right, the pink
   plate kicks out, the title band slams in, then the contents cascade. */
.detail-bg{animation:bg-in .38s .06s cubic-bezier(.7,0,.2,1) both}
.title-band::after{animation:band-shadow .3s .36s cubic-bezier(.2,.8,.2,1) both}
.detail-watermark{animation:mark-in .7s .2s cubic-bezier(.2,.8,.2,1) both}
.panel-head,.panel-foot{animation:fade-up .3s .3s ease-out both}
#detail-body>*{animation:fade-up .36s calc(.34s + var(--d,0) * 45ms) cubic-bezier(.2,.8,.2,1) both}
@keyframes bg-in{from{clip-path:polygon(100% 0,100% 1.6%,100% 100%,100% 98%)}}
@keyframes plate-in{0%,30%{transform:translate(0,0) skewX(-6deg);opacity:0}}
@keyframes band-in{from{opacity:0;transform:translateX(-110%) skewX(-24deg)}}
@keyframes band-shadow{from{transform:translate(0,0);opacity:0}}
@keyframes mark-in{from{opacity:0;transform:translateX(18%) skewX(-12deg)}}
@keyframes fade-up{from{opacity:0;transform:translateY(14px)}}
/* Exit: contents drop first, the band shoots off left, the slab folds right. */
.detail.closing{pointer-events:none}
.detail.closing #detail-body>*,.detail.closing .panel-head,.detail.closing .panel-foot{animation:fade-out .14s ease-in both}
.detail.closing .title-band{animation:band-out .24s .04s cubic-bezier(.6,0,.8,.4) both}
.detail.closing .detail-bg{animation:bg-out .3s .06s cubic-bezier(.7,0,.3,1) both}
.detail.closing .detail-plate{animation:plate-out .3s .02s cubic-bezier(.6,0,.4,1) both}
.detail.closing .detail-watermark{animation:fade-out .2s both}
@keyframes fade-out{to{opacity:0;transform:translateY(8px)}}
@keyframes band-out{to{opacity:0;transform:translateX(-60%) skewX(-24deg)}}
@keyframes bg-out{to{clip-path:polygon(100% 0,100% 1.6%,100% 100%,100% 98%)}}
@keyframes plate-out{to{transform:translate(42px,-10px) skewX(-8deg);opacity:0}}

/* Screen-wide slashes that lead each transition. */
.page-wipe{position:absolute;inset:0;z-index:6;pointer-events:none;overflow:hidden}
.page-wipe i{position:absolute;top:-10%;bottom:-10%;left:0;width:22vw;transform:translateX(-140vw) skewX(-24deg);will-change:transform}
.page-wipe i:nth-child(1){background:var(--pink);width:9vw}
.page-wipe i:nth-child(2){background:#fff;width:3vw}
.page-wipe i:nth-child(3){background:var(--cyan);width:1.2vw;opacity:.9}
.page-wipe.in i{animation:wipe-in .46s cubic-bezier(.7,0,.25,1) both}
.page-wipe.in i:nth-child(2){animation-delay:.04s}.page-wipe.in i:nth-child(3){animation-delay:.08s}
.page-wipe.out i:nth-child(1),.page-wipe.out i:nth-child(3){animation:wipe-out .36s cubic-bezier(.6,0,.3,1) both}
.page-wipe.out i:nth-child(3){animation-delay:.05s}
@keyframes wipe-in{from{transform:translateX(-70vw) skewX(-24deg)}to{transform:translateX(170vw) skewX(-24deg)}}
@keyframes wipe-out{from{transform:translateX(170vw) skewX(-24deg)}to{transform:translateX(-70vw) skewX(-24deg)}}

/* Pointer: depth parallax and a spotlight on the panel. */
.ui-ready .fv-overlay .particle{translate:calc(var(--mx,0) * -18px) calc(var(--my,0) * -12px)}
.ui-ready .header{translate:calc(var(--mx,0) * 5px) calc(var(--my,0) * 3px)}
.ui-ready .welcome,.ui-ready .home-caption{translate:calc(var(--mx,0) * 9px) calc(var(--my,0) * 6px)}
.detail-bg::after{content:'';position:absolute;inset:0;opacity:0;transition:opacity .3s;background:radial-gradient(420px circle at var(--px,50%) var(--py,50%),rgba(120,250,255,.11),transparent 70%)}
.fx-pointer .detail-bg::after{opacity:1}

/* Shared content pieces */
.placeholder-label{border:0;padding:5px 9px 4px 24px;margin-bottom:18px;font:700 9px/1 var(--caps);letter-spacing:2px;color:var(--ink);background:linear-gradient(#fcff8b,#fcff8b) right/calc(100% - 17px) 100% no-repeat,repeating-linear-gradient(-45deg,#fcff8b 0 3px,transparent 3px 6px) left/15px 100% no-repeat}
.section-label{display:block;font:700 10px/1.4 var(--caps);letter-spacing:2px;color:var(--cyan)}
.detail-scroll>div>.section-label{margin:28px 0 12px}

/* ABOUT: arcana card + profile */
.profile{display:flex;align-items:center;gap:24px;margin:4px 0 24px}
.arcana-card{flex-shrink:0;width:82px;height:122px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:9px 6px 9px;background:linear-gradient(170deg,#0a3fd6,var(--ink));border:1px solid #fff;outline:1px solid rgba(255,255,255,.35);outline-offset:3px;transform:rotate(-4deg);box-shadow:7px 7px 0 var(--pink)}
.arcana-num{font:800 italic 20px/1 var(--font);color:#fff}
.arcana-card svg{width:46px;height:46px;color:#fff;--emblem-moon:#0a3fd6}
.arcana-name{font:700 9px/1 var(--font);letter-spacing:1.5px;color:var(--cyan);white-space:nowrap}
.detail .profile h2{font-size:26px;margin:8px 0 6px;color:#fff}
.detail .profile .role{margin:0}
.skill-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.skill-list li{position:relative;padding:9px 12px 9px 30px;font-size:12px;letter-spacing:1px;color:#fff;background:rgba(120,250,255,.07);border-left:3px solid var(--cyan)}
.skill-list li::before{content:'';position:absolute;left:12px;top:50%;width:7px;height:7px;background:var(--pink);transform:translateY(-50%) rotate(45deg)}
.detail .now{border:0;margin-top:26px;padding:14px 18px;background:rgba(255,255,255,.07);clip-path:polygon(0 0,100% 0,98.5% 100%,0 100%)}
.now>span::before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--pink);margin-right:8px;vertical-align:2px;animation:now-blink 1.4s steps(2,jump-none) infinite}
.detail .now p{margin:6px 0 0}
@keyframes now-blink{50%{opacity:.15}}

/* WORKS: compendium rows; hover/focus mimics a menu selection. */
.work-list{counter-reset:none}
.detail .work-row{display:grid;grid-template-columns:68px 1fr;gap:4px 14px;padding:18px 16px 16px 8px;border-top:1px solid rgba(140,223,255,.2);transition:background .15s,color .15s}
.detail .work-row:last-child{border-bottom:1px solid rgba(140,223,255,.2)}
.detail .work-num{position:static;font:900 italic 50px/.85 var(--font);color:transparent;-webkit-text-stroke:1.5px var(--cyan);transition:color .15s,-webkit-text-stroke-color .15s}
.work-info h3{margin:4px 0 6px!important;color:#fff}
.detail .work-info p{margin:0 0 10px}
.work-link{display:inline-block;font:700 11px/1 var(--font);letter-spacing:1.6px;color:var(--ink);background:var(--cyan);padding:5px 10px 4px;clip-path:polygon(6% 0,100% 0,94% 100%,0 100%)}
.work-link.pending{background:rgba(255,255,255,.12);color:#a9cbe6;font-family:var(--body);font-weight:500;letter-spacing:.5px;font-size:10px}
.detail .work-row:hover,.detail .work-row:focus-within{background:#fff;clip-path:polygon(0 0,100% 4%,99% 100%,1% 96%)}
.detail .work-row:hover .work-num,.detail .work-row:focus-within .work-num{color:var(--pink);-webkit-text-stroke-color:var(--pink)}
.detail .work-row:hover :is(h3,p,.category),.detail .work-row:focus-within :is(h3,p,.category){color:var(--ink)!important}
.detail .work-row:hover .work-link.pending{background:rgba(3,20,67,.1);color:#40597a}

/* JOURNAL: diary entries with a calendar chip. */
.detail .journal-entry{padding:18px 0;border-top:1px solid rgba(140,223,255,.2)}
.journal-entry summary{display:flex;gap:16px;align-items:flex-start;padding-right:34px}
.date-chip{flex-shrink:0;width:58px;display:flex;flex-direction:column;align-items:center;padding:7px 0 5px;background:#fff;color:var(--ink);transform:rotate(-3deg);box-shadow:4px 4px 0 var(--pink)}
.date-chip b{font:800 italic 21px/1 var(--font);letter-spacing:-.5px}
.date-chip span{font:700 9px/1 var(--font);letter-spacing:1.6px;margin-top:3px}
.date-chip.empty{background:rgba(255,255,255,.14);color:#cfe6ff;box-shadow:4px 4px 0 rgba(255,83,125,.45)}
.journal-head{min-width:0}
.journal-entry summary:after{content:'';top:14px;right:4px;width:18px;height:18px;background:linear-gradient(var(--cyan),var(--cyan)) center/100% 2px no-repeat,linear-gradient(var(--cyan),var(--cyan)) center/2px 100% no-repeat;transition:transform .2s}
.journal-entry[open] summary:after{content:'';transform:rotate(135deg)}
.journal-entry summary:hover h3{color:var(--cyan)}
.detail .journal-body{border-left:3px solid var(--pink);margin-left:74px!important;color:#e0f0ff}
/* Journal entries now link to their article pages (/journal/<slug>/). */
.journal-link{display:flex;gap:16px;align-items:flex-start;padding:18px 34px 18px 0!important;position:relative;color:inherit;transition:background .15s,padding .15s}
.journal-link::after{content:'↗';position:absolute;right:6px;top:18px;font:600 20px/1 var(--font);color:var(--cyan);transition:transform .15s}
.journal-link:hover,.journal-link:focus-visible{background:rgba(120,250,255,.07);padding-left:10px!important}
.journal-link:hover::after,.journal-link:focus-visible::after{transform:translate(3px,-3px)}
.journal-link:hover h3,.journal-link:focus-visible h3{color:var(--cyan)}
.journal-link h3{margin:8px 0}
.detail .journal-link p{margin:0;font-size:11px}
.journal-read{display:inline-block;margin-top:10px;font:700 10px/1 var(--font);letter-spacing:1.8px;color:var(--cyan)}
.journal-all{display:inline-block;margin:18px 0 6px;font:700 11px/1 var(--font);letter-spacing:1.6px;color:var(--ink);background:#fff;padding:7px 14px 6px;clip-path:polygon(4% 0,100% 0,96% 100%,0 100%);box-shadow:none;transition:background .15s}
.journal-all:hover,.journal-all:focus-visible{background:var(--cyan)}
.detail .journal-link+.journal-all{border-top:0}

/* CONTACT: a social-link slab and numbered rows. */
.detail .contact-feature{position:relative;border:0;margin-top:24px;padding:20px 24px 22px;background:#fff;color:var(--ink);clip-path:polygon(0 4%,100% 0,98% 100%,1% 94%)}
.contact-feature .category{display:block;color:#0649ed}
.detail .contact-feature strong{display:block;margin-top:6px;font:800 clamp(30px,2.8vw,42px)/1 var(--font);font-style:italic;letter-spacing:.5px;color:#000}
.detail .contact-feature .muted{color:#4b6684!important;margin:6px 0 0}
.detail .contact-feature .contact-link{display:block;margin-top:8px;font-size:20px;color:var(--ink)}
.detail .contact-links>*{align-items:center;gap:14px;padding:14px 4px;transition:padding .15s,background .15s}
.contact-links i{font:700 italic 12px var(--font);color:var(--pink);font-style:italic;width:20px}
.contact-links>* span{margin-left:auto}
.contact-links>a:hover,.contact-links>a:focus-visible{padding-left:14px;background:rgba(120,250,255,.08);color:var(--cyan)}

/* Credits dialog follows the panel language. */
dialog#credits{border:0;padding:34px 38px;background:linear-gradient(165deg,#0a3fd6,#021047 75%);box-shadow:14px 14px 0 var(--pink);clip-path:none}
dialog#credits h2{font:900 italic 34px/1 var(--font);letter-spacing:.5px;color:#fff;margin:14px 0 18px}
dialog#credits .eyebrow{display:inline-block;background:#fff;color:var(--ink);padding:3px 8px 2px}
dialog#credits a{border-top:1px solid rgba(140,223,255,.2);line-height:2.6}
dialog#credits a:hover{color:#fff;padding-left:6px}
dialog#credits .close-button{color:#fff}

/* Narrow desktop windows */
@media(max-width:1200px) and (min-width:801px){
  .brand-mark{width:44px;height:44px}.brand-name b{font-size:20px}.brand-name>span{font-size:7px;letter-spacing:2.4px}
  .date-row strong{font-size:46px}.date .date-row strong span{font-size:34px}.date .moon{width:38px;height:38px}
  .detail{--pad-l:28px;padding-right:24px}
}
@media(max-height:760px) and (min-width:801px){.title-band{margin-bottom:14px}}
/* Keep the welcome line clear of the calendar. */
@media(min-width:801px){.welcome{margin-top:14px}.welcome p{margin-top:10px}}

/* Phone: light header on the white video area. */
@media(max-width:800px){
  .brand-mark{width:42px;height:42px}.brand-name b{font-size:18px}.brand-name>span{font-size:7px;letter-spacing:2px;margin-top:5px}
  .date{column-gap:8px;row-gap:5px}
  .date .date-stack{display:flex}.date .moon{display:block;width:30px;height:30px;filter:none}
  .moon-shadow{fill:#1d384a;stroke:#1d384a;stroke-width:1.5}.moon-lit{fill:#fff3a0}
  .date-row strong{font-size:34px;color:#1d384a;text-shadow:2px 2px 0 #9fdcff}
  .date .date-row strong span{font-size:26px;color:#0649ed}
  .date .date-row b{font-size:13px;padding:2px 5px 1px}
  .daytime-band{background:#1d384a;color:#fff;padding:3px 8px 2px 14px}.date .daytime-band span{font-size:9px;letter-spacing:1.6px}
  .moon-note{display:none}
  .home-caption .caption-mark{color:#1d384a;--emblem-moon:#fff;width:24px;height:24px}
  .detail{--pad-l:22px;padding:20px 20px 0 var(--pad-l);background:none}
  .detail-plate{--plate:7px}
  .detail-watermark{font-size:200px}
  .title-band{margin-bottom:16px;gap:10px;padding-right:22px}
  .title-band{flex-direction:column;align-items:flex-start;gap:4px}
  .detail .title-band h1{font-size:clamp(34px,10vw,42px);white-space:nowrap}
  .title-kicker{font-size:9px;letter-spacing:1px;margin-bottom:0}
  .profile{gap:18px}.arcana-card{width:66px;height:100px}.arcana-card svg{width:36px;height:36px}
  .skill-list{grid-template-columns:1fr}
  .detail .work-row{grid-template-columns:48px 1fr}.detail .work-num{font-size:38px}
  .detail .journal-body{margin-left:0!important}
  dialog#credits{padding:28px 24px;box-shadow:8px 8px 0 var(--pink)}
}
@media(max-width:380px){.title-kicker{display:none}}
