*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#574439;color:#392a25;font-family:Georgia,serif}.banner img{display:block;width:100%;height:auto}.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:1rem;top:1rem;z-index:100;background:#fff;padding:.7rem}.desk{background-color:#8a8179;background-image:url("assets/approved-wood.webp");background-size:cover;background-position:center top;background-repeat:no-repeat;min-height:calc(100vh - 120px);padding:clamp(18px,3vw,48px) 2vw 28px;display:flex;flex-direction:column;justify-content:center}.desk-scene{position:relative;width:min(100%,1420px);aspect-ratio:1.9;margin:auto}.letter{position:absolute;top:6%;left:3%;width:39%;aspect-ratio:1230/1278;transform:rotate(-5deg);filter:drop-shadow(5px 9px 8px rgba(38,24,17,.34));z-index:2}.parchment{position:absolute;inset:0;width:100%;height:100%}.writing{position:absolute;inset:0;color:#3f302a}.welcome-ink{position:absolute;top:6.8%;left:15%;width:45%}.letter-body{position:absolute;top:23%;left:18%;width:63%;font-family:'Nothing You Could Do',cursive;font-size:clamp(8px,1.03vw,15px);line-height:1.43;transform:rotate(-.5deg)}.letter-body p{margin:0 0 1.12em}.signature-ink{position:absolute;top:63%;left:36%;width:36%}.featured{position:absolute;top:10%;right:4%;width:27%;transform:rotate(5deg);z-index:2}.album-art{display:block;width:100%;box-shadow:6px 10px 14px rgba(25,13,10,.42)}.album-slip{width:93%;margin:-2px auto 0;background:#e7d3ac;color:#523b2e;padding:10px 12px 12px;box-shadow:3px 5px 8px #3e2b2570;text-align:center;transform:rotate(-2deg)}.album-slip strong,.album-slip span{display:block}.album-slip strong{font-size:clamp(12px,1.4vw,19px)}.album-slip span{font-size:clamp(10px,.93vw,13px);line-height:1.3;margin:.4em 0}.album-slip a{color:#713a48;font-weight:bold;font-size:clamp(11px,1vw,14px)}.journal{position:absolute;top:35%;left:42%;width:26%;aspect-ratio:.77;transform:rotate(-13deg);border:0;background:none;padding:0;cursor:pointer;z-index:3;filter:drop-shadow(9px 15px 10px #24120c8c);transition:transform .3s ease}.journal:hover,.journal:focus-visible{transform:rotate(-10deg) translateY(-8px)}.page-stack{position:absolute;inset:3% -4% -5% 5%;border-radius:8px 12px 13px 6px;background:repeating-linear-gradient(180deg,#e1d1aa 0px,#e1d1aa 2px,#9c896f 3px,#e6d9b7 4px);box-shadow:3px 4px 0 #5e4030}.book-spine{position:absolute;top:0;bottom:0;left:-5%;width:14%;border-radius:20px 0 0 20px;background:linear-gradient(90deg,#382318,#64422c 34%,#2d1a14 75%,#563724);z-index:2}.journal-cover{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:11px 14px 14px 8px;border:8px solid #533622;outline:2px solid #9a7651;outline-offset:-17px;background:radial-gradient(ellipse at 35% 30%,#87613e,#63422c 55%,#352218 110%);box-shadow:inset 0 0 32px #28170fb0,inset 2px 2px 4px #b48c59a6,3px 4px 3px #2a180d9e;z-index:3;color:#b18b5c}.journal-cover:after{content:"";position:absolute;inset:23px;border:1px solid #b28a5b6b;border-radius:6px;pointer-events:none}.journal-name{font-family:'Nothing You Could Do',cursive;font-size:clamp(30px,4.8vw,68px);letter-spacing:.04em;text-shadow:1px 1px 0 #2b1c15,-1px -1px 0 #a27d4d;transform:rotate(-2deg)}.botanical{font-size:clamp(15px,2.4vw,34px);opacity:.65;margin-top:1.5rem;letter-spacing:.2em}.emboss-corner{position:absolute;font-size:clamp(16px,2vw,29px);opacity:.5}.corner-tl{top:9%;left:13%}.corner-tr{top:9%;right:13%;transform:scaleX(-1)}.corner-bl{bottom:9%;left:13%;transform:scaleY(-1)}.corner-br{bottom:9%;right:13%;transform:scale(-1)}.desk-hint{color:#f5e5cb;text-align:center;text-shadow:1px 2px 3px #3a221a;font-size:clamp(12px,1.1vw,16px);margin:0 auto}.journal-dialog{width:min(92vw,950px);max-height:90vh;border:0;padding:0;background:transparent;overflow:visible;color:#3d3028}.journal-dialog::backdrop{background:#211711bf;backdrop-filter:blur(3px)}.open-book{display:grid;grid-template-columns:1fr 1fr;min-height:480px;position:relative;filter:drop-shadow(12px 17px 13px #160d0b8c);border:12px solid #553722;border-radius:15px;background:#e7d7b4}.open-page{padding:clamp(20px,3vw,44px);background:repeating-linear-gradient(0deg,#eadcba,#eadcba 27px,#e7d6b0 28px);box-shadow:inset 0 0 25px #9b795a7a;min-width:0}.left-page{border-right:8px solid #a88c69;text-align:center;display:flex;flex-direction:column;justify-content:center}.page-kicker{font-style:italic}.left-page h1{font-family:'Nothing You Could Do',cursive;font-size:clamp(40px,6vw,76px);margin:.2em}.left-page p{line-height:1.6}.pressed-flower{font-size:70px;color:#856c65}.right-page h2{font-family:'Nothing You Could Do',cursive;font-size:clamp(27px,3vw,43px);font-weight:normal}.right-page p{line-height:1.65}.journal-panel button,.journal-links a{display:block;background:none;border:0;color:#694454;font:italic 19px Georgia,serif;padding:10px 0;text-align:left;cursor:pointer;text-decoration:none}.journal-panel button:hover,.journal-links a:hover{text-decoration:underline}.close-journal{position:absolute;right:-22px;top:-23px;z-index:5;border:0;background:#f3e6cc;color:#493124;border-radius:50%;font-size:30px;width:45px;height:45px;cursor:pointer}.journal-dialog:focus{outline:none}a:focus-visible,button:focus-visible{outline:3px solid #c08c65;outline-offset:4px}@media(max-width:800px){.desk{min-height:0;padding:20px 10px 28px}.desk-scene{aspect-ratio:.82;max-width:620px}.letter{top:2%;left:3%;width:61%}.letter-body{font-size:clamp(9px,1.85vw,14px)}.featured{top:52%;right:3%;width:43%}.album-slip span{font-size:10px}.journal{top:39%;left:9%;width:47%}.journal-name{font-size:clamp(30px,8vw,55px)}.botanical{font-size:clamp(16px,3vw,26px)}.open-book{min-height:380px}.open-page{padding:20px}}@media(max-width:480px){.desk-scene{aspect-ratio:.68}.letter{width:80%;left:9%}.letter-body{font-size:clamp(9px,2.45vw,12px)}.journal{top:48%;left:7%;width:52%}.featured{top:53%;right:0;width:42%}.album-slip{padding:7px 5px}.album-slip strong{font-size:11px}.album-slip span{font-size:9px}.open-book{grid-template-columns:1fr;max-height:82vh;overflow-y:auto}.left-page{display:none}.right-page{min-height:360px;border-left:6px solid #9e805f}.close-journal{right:-10px;top:-12px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;scroll-behavior:auto!important}}
/* Placement review v3: retain the approved wood and artwork unchanged. */
@media(min-width:801px){
 .desk{padding:clamp(14px,2vw,28px) 1vw 16px}
 .desk-scene{width:min(100%,1540px);aspect-ratio:2.03}
 .letter{left:-1%;top:7%;width:35%;transform:rotate(-4deg);z-index:2}
 .featured{right:0%;top:10%;width:24%;transform:rotate(5deg);z-index:2}
 .journal{left:34%;top:15%;width:36%;aspect-ratio:1302/1208;transform:rotate(-5deg);z-index:3}
 .journal:hover,.journal:focus-visible{transform:rotate(-4deg) translateY(-5px)}
}
.featured a{display:block;line-height:0}
.album-art{box-shadow:6px 10px 14px rgba(25,13,10,.35)}
.album-slip{display:none}
.journal{border:0;background:transparent;padding:0;cursor:pointer;filter:drop-shadow(10px 16px 11px rgba(35,19,12,.48));overflow:visible}
.journal-image{display:block;width:100%;height:auto;pointer-events:none}
@media(max-width:800px){
 .desk-scene{aspect-ratio:.91}
 .letter{top:2%;left:0%;width:62%}
 .featured{top:8%;right:0%;width:37%}
 .journal{top:44%;left:20%;width:65%;aspect-ratio:1302/1208;transform:rotate(-5deg)}
 .journal:hover,.journal:focus-visible{transform:rotate(-4deg) translateY(-4px)}
}
@media(max-width:480px){
 .desk-scene{aspect-ratio:.73}
 .letter{top:1%;left:0%;width:74%}
 .featured{top:39%;right:0%;width:41%}
 .journal{top:51%;left:3%;width:74%}
}
/* v4: refine composition only. All approved image assets remain unchanged. */
@media (min-width:801px) {
  .letter { left: 0%; top: 11%; width: 30%; }
  .letter-body { font-size: clamp(8px, .83vw, 12px); line-height: 1.42; }
  .letter-body p { margin-bottom: .95em; }
  .signature-ink { top: 77%; left: 35%; width: 34%; }
  .featured { right: 3.3%; top: 16%; width: 23%; }
  .letter { filter: drop-shadow(5px 8px 7px rgba(38,24,17,.29)); }
  .featured .album-art { box-shadow: 5px 8px 11px rgba(25,13,10,.32); }
}
@media (min-width:481px) and (max-width:800px) {
  .letter { width: 59%; left: 1%; }
  .signature-ink { top: 77%; left: 35%; width: 34%; }
  .featured { right: 3%; top: 12%; width: 35%; }
}
@media (max-width:480px) {
  .letter { width: 72%; left: 1%; }
  .signature-ink { top: 77%; left: 35%; width: 34%; }
  .featured { right: 3%; top: 40%; width: 39%; }
}

/* v5: signature-only correction; all other layout and artwork unchanged. */
.signature-ink { top: 67%; left: 43%; width: 32%; }

/* v7: open journal only. The locked desk scene and approved image assets remain unchanged. */
.journal-dialog{width:min(94vw,1120px);max-height:min(90vh,790px);color:#473327}
.open-book{isolation:isolate;min-height:min(650px,79vh);border:13px solid #5c3825;border-left-width:18px;border-right-width:18px;border-radius:22px 19px 24px 21px;overflow:hidden;background:#dbc8a4;box-shadow:inset 0 0 0 2px #aa7b4d, 0 12px 0 -5px #bca783,0 20px 0 -10px #77553a,12px 27px 34px #130b08a8;filter:none}
.open-book:before{content:"";position:absolute;inset:0;pointer-events:none;z-index:4;border-radius:9px;box-shadow:inset 0 0 22px #4d301f70}
.open-page{position:relative;padding:clamp(24px,3.8vw,50px);background-color:#efe2c7;background-image:radial-gradient(ellipse at 25% 16%,#fff7e688,transparent 62%),repeating-linear-gradient(94deg,#84664a08 0 1px,transparent 1px 7px),linear-gradient(90deg,#d8c3a1 0%,#f0e2c5 10%,#f1e5ce 75%,#d6bd99 100%);box-shadow:inset 0 0 18px #74553b38;overflow-y:auto;max-height:min(75vh,720px)}
.left-page{display:block;text-align:left;border-right:0;background-image:radial-gradient(ellipse at 20% 18%,#fff8e788,transparent 70%),linear-gradient(90deg,#d5bb94,#f1e5cd 12%,#eaddc0 86%,#b9a07d)}
.right-page{background-image:radial-gradient(ellipse at 35% 18%,#fff9e288,transparent 70%),linear-gradient(90deg,#b49a76,#ebdcc0 11%,#f1e5ce 86%,#d8bf99)}
.book-binding{position:absolute;left:calc(50% - 15px);top:0;bottom:0;width:30px;background:linear-gradient(90deg,#9a7a57a8,#62472e70 36%,#fff2d087 53%,#ad916e88 76%,transparent);z-index:3;pointer-events:none}
.page-kicker{font:italic 13px Georgia,serif;letter-spacing:.1em;color:#87634c;margin:0 0 12px}
.left-page h1,.right-page h2{font-family:'Nothing You Could Do',cursive;font-weight:normal;color:#714653;line-height:1.2;margin:0 0 28px}
.left-page h1{font-size:clamp(27px,3.1vw,44px)}.right-page h2{font-size:clamp(28px,3.2vw,44px)}
.bio-copy{font:clamp(15px,1.35vw,18px)/1.85 Georgia,serif;max-width:35ch}.bio-copy p{margin:0 0 1.25em}
.bio-note,.draft-note{font:italic 12px/1.5 Georgia,serif;color:#8c6c59;margin-top:22px}
.contents-list{display:grid;gap:2px}.contents-list button{display:flex;justify-content:space-between;align-items:baseline;gap:10px;width:100%;padding:13px 0;border:0;border-bottom:1px solid #977d5c5c;background:none;text-align:left;cursor:pointer;color:#5a3b35;font:18px/1.25 Georgia,serif}
.contents-list button small{font:italic 12px Georgia,serif;color:#91705f;text-align:right;white-space:nowrap}.contents-list button:hover{color:#9b5065}
.journal-panel p{font-size:16px;line-height:1.7}.journal-links a{font:17px Georgia,serif;border-bottom:1px solid #94755760;padding:12px 0}.thought-entry{border-left:2px solid #b58c9a;padding-left:16px;margin-top:25px}.thought-entry h3{font:italic 21px Georgia,serif;margin:0}
.page-footer{display:flex;justify-content:space-between;align-items:end;margin-top:30px}.page-number{font:italic 13px Georgia,serif;color:#a08365}.left-page>.page-number{position:absolute;bottom:25px;left:50%}.back-to-contents{border:0;background:none;padding:8px 0;color:#744659;cursor:pointer;font:italic 15px Georgia,serif}.back-to-contents:hover{text-decoration:underline}
.journal-panel[hidden],.back-to-contents[hidden]{display:none!important}
.close-journal{right:-10px;top:-10px;background:#efe0c3;box-shadow:0 3px 7px #24120a77}
@media(max-width:680px){.journal-dialog{width:95vw;max-height:90vh}.open-book{grid-template-columns:1fr;max-height:84vh;min-height:0;overflow-y:auto;border-width:9px}.open-page{max-height:none;overflow:visible;padding:24px}.left-page{display:block;border-bottom:4px double #a48a6c}.book-binding{display:none}.contents-list button{font-size:16px}.contents-list button small{font-size:11px}.bio-copy{font-size:15px}.close-journal{position:sticky;float:right;right:0;top:0;margin:4px 4px -45px 0}}

/* v8: album/story spread, without changing the approved desk artwork */
.left-default[hidden],.left-album[hidden],.left-song[hidden]{display:none!important}
.left-album,.left-song{font:clamp(15px,1.25vw,18px)/1.75 Georgia,serif;color:#46382d}
.left-album h1,.left-song h1{font-size:clamp(29px,3.2vw,45px)}
.album-intro{font-style:italic;font-size:1.05em;color:#714653}
.album-spotify{display:inline-block;margin:12px 0 4px;color:#6c3e55;text-decoration:underline;text-underline-offset:4px;font-weight:bold}
.link-clarifier{font-size:12px!important;color:#806b5a}
.track-list{display:flex;flex-direction:column;gap:0;margin:8px 0}
.track-list .track-link{display:grid;grid-template-columns:30px 1fr 12px;gap:8px;align-items:center;width:100%;padding:7px 0;border-bottom:1px solid #a58c713f;font:clamp(13px,1.2vw,16px)/1.25 Georgia,serif;color:#563948;text-align:left}
.track-num{font-size:11px;color:#9b7c66;font-style:italic}
.track-list .track-link:hover{background:#9a74561c}
.return-to-tracks{margin-top:24px!important;font-size:16px!important}
@media(max-width:680px){.track-list .track-link{font-size:15px}.left-album,.left-song{font-size:16px}}

/* v14: rosary placement ONLY. Original approved image assets and all existing CSS remain unchanged. */
.desk-rosary { position:absolute; left:27%; top:39%; width:27%; height:auto; z-index:4; pointer-events:none; user-select:none; filter:drop-shadow(2px 4px 3px rgba(30,18,13,.22)); }
@media (min-width:801px) { .desk-rosary {left:28%; top:42%; width:27%;} }
@media (min-width:481px) and (max-width:800px) { .desk-rosary {left:31%; top:33%; width:39%;} }
@media (max-width:480px) { .desk-rosary {left:22%; top:37%; width:53%;} }

/* v15: move only the standalone rosary toward the upper-right corner of the letter. */
.desk-rosary{left:13%;top:4%;width:22%;}
@media(min-width:801px){.desk-rosary{left:13%;top:4%;width:22%;}}
@media(min-width:481px) and (max-width:800px){.desk-rosary{left:20%;top:9%;width:31%;}}
@media(max-width:480px){.desk-rosary{left:18%;top:9%;width:38%;}}

/* v16: standalone fountain pen and upright cap; other homepage assets unchanged. */
.desk-pen{position:absolute;left:-3%;top:49%;width:21%;height:auto;z-index:5;pointer-events:none;user-select:none;filter:drop-shadow(2px 5px 3px rgba(30,18,13,.22));}
@media(max-width:800px){.desk-pen{left:-2%;top:31%;width:30%;}}
@media(max-width:480px){.desk-pen{left:-3%;top:31%;width:35%;}}
/* Preserve user's latest rosary adjustment (rightward from 13% to 17%). */
.desk-rosary{left:17%;}
@media(min-width:801px){.desk-rosary{left:17%;}}

/* v20: approved desktop artwork remains unmodified; lace is a separate fabric layer. */
.desk-pen{left:-9%;}
@media(min-width:801px){.desk-pen{left:-9%;}}
.desk-lace{position:absolute;right:-17%;top:3%;width:47%;height:auto;transform:rotate(-12deg);z-index:1;pointer-events:none;filter:drop-shadow(-6px 8px 6px rgba(38,23,17,.22));}
/* Keep the approved banner at its natural aspect ratio, with no cropping. */
.banner{position:relative;isolation:isolate;overflow:hidden;}
.banner:after{content:"";position:absolute;bottom:0;left:0;right:0;height:38px;background:linear-gradient(transparent,rgba(77,49,32,.28));pointer-events:none;}
.desk{box-shadow:inset 0 18px 26px -23px rgba(75,39,24,.5);}
@media(max-width:800px){.desk-lace{right:-21%;top:50%;width:68%;transform:rotate(-12deg);}}


/* v22: show the ENTIRE approved banner at its true 1983:793 ratio.
   No fixed height, object-fit:cover, cropping, or empty sidebars. */
.banner { height:auto !important; min-height:0 !important; overflow:visible !important; background:transparent !important; }
.banner img { display:block; width:100%; height:auto !important; max-height:none !important; object-fit:contain !important; object-position:center center !important; }
/* Lace is part of the desk, never the banner. The natural transparent
   cutout is kept intact; no stretching or opaque rectangular backing. */
.desk { overflow:hidden; }
.desk-lace { top:0 !important; right:-11% !important; width:43% !important; height:auto !important; object-fit:contain !important; transform:rotate(5deg) !important; transform-origin:center !important; clip-path:none !important; z-index:1 !important; }
@media(max-width:800px) { .desk-lace {top:4% !important;right:-18% !important;width:57% !important;} }
@media(max-width:480px) { .desk-lace {top:6% !important;right:-22% !important;width:66% !important;} }

/* v23: full-height lace drape on right of desk; preserve the approved banner.
   Rotate the fabric asset rather than stretching its embroidered details. */
.desk-scene { isolation:isolate; }
.desk-lace { top:-5% !important; right:-7% !important; width:48% !important; height:auto !important; object-fit:contain !important; transform:rotate(-3deg) !important; transform-origin:top right !important; z-index:1 !important; }
@media (max-width:800px) {.desk-lace {top:45% !important;right:-14% !important;width:56% !important;height:58% !important;}}

/* v24: move lace up to hide the cutout top boundary, leaving all other elements unchanged. */
@media(min-width:801px){.desk-lace{top:-15% !important;}}
@media(min-width:481px) and (max-width:800px){.desk-lace{top:-10% !important;}}
@media(max-width:480px){.desk-lace{top:-8% !important;}}

/* v25: move ONLY the lace to the right, hiding its straight outer edge. */
@media(min-width:801px){.desk-lace{right:-14% !important;}}
@media(min-width:481px) and (max-width:800px){.desk-lace{right:-21% !important;}}
@media(max-width:480px){.desk-lace{right:-29% !important;}}

/* User-authored journal text and dedication */
#bio-content p,#album-about-content p,.song-story {white-space:pre-line;}
.dedication-panel {min-height:100%;position:relative;}
.dedication-text {position:absolute;left:0;right:0;bottom:10%;text-align:center;font-family:"Nothing You Could Do",cursive;font-size:1rem;color:#241b15;}

/* v27: readable two-page journal stories and blank dedication facing page */
.left-stories,.left-dedication{height:100%;min-height:0;position:relative;overflow:auto;padding-bottom:2rem;}
.stories-panel{overflow:auto;max-height:100%;padding-bottom:2rem;}
.story-column{display:flex;flex-direction:column;gap:0.85rem;padding:0.3rem 0.15rem 1rem;}
.story-entry{break-inside:avoid;padding-bottom:.55rem;border-bottom:1px solid rgba(96,69,42,.16);}
.story-entry h3{font-family:Georgia,serif;font-size:clamp(.82rem,1.2vw,1.02rem);margin:0 0 .24rem;color:#513623;}
.story-entry p{font-family:Georgia,serif;font-size:clamp(.74rem,1vw,.88rem);line-height:1.45;margin:0;color:#483c30;}
.read-stories{margin-top:1rem;padding:.55rem .8rem;border:1px solid #987b59;background:#f1e5cd;color:#513623;cursor:pointer;border-radius:5px;}
.left-dedication{background:transparent;}
.dedication-panel{display:flex;align-items:flex-end;justify-content:center;min-height:75%;padding-bottom:3.5rem;}
.dedication-panel[hidden]{display:none;}
.dedication-text{font-family:'Nothing You Could Do',cursive!important;font-size:1rem!important;color:#30261f!important;text-align:center;}
@media(max-width:650px){.story-entry h3{font-size:.9rem}.story-entry p{font-size:.78rem}}

/* v28: book pages turn; never scroll within the journal */
.journal-dialog{width:min(96vw,1060px)!important;max-width:none!important;max-height:96vh!important;overflow:visible!important;padding:0!important}
.book-shell{position:relative;width:100%}
.open-book{display:grid!important;grid-template-columns:1fr 1fr!important;width:100%;height:min(73vh,650px)!important;min-height:0!important;max-height:none!important;overflow:hidden!important;box-sizing:border-box}
.open-page{height:100%!important;min-height:0!important;max-height:none!important;overflow:hidden!important;display:block!important;padding:clamp(17px,2.5vw,34px)!important;position:relative;text-align:left!important;}
.open-page[hidden]{display:none!important}
.book-page-content{height:calc(100% - 12px);overflow:hidden!important;color:#3d3028;font-family:Georgia,serif;font-size:clamp(11px,1.02vw,13px);line-height:1.23;text-align:justify;hyphens:auto;}
.book-page-content p{font-size:inherit!important;line-height:1.23!important;margin:0 0 .5em!important;white-space:pre-line;}
.book-page-content h2{font-family:'Nothing You Could Do',cursive!important;font-size:clamp(19px,2.15vw,29px)!important;line-height:1.1!important;margin:0 0 10px!important;text-align:left}
.book-kicker{font:italic 10px Georgia,serif;letter-spacing:.09em;color:#86674e;margin:0 0 6px}
.book-story{margin:0 0 10px;padding:0 0 7px;border-bottom:1px solid #9b7e5945;break-inside:avoid}
.book-story h3{font: bold clamp(11px,1.05vw,13px) Georgia,serif;color:#563c2c;margin:0 0 3px;text-align:left}
.book-story p{margin:0!important}
.book-page-number{position:absolute;bottom:9px;right:26px;font:italic 11px Georgia,serif;color:#8b7158}
.book-controls{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:12px auto 0;max-width:520px;color:#f5e6d3;font:14px Georgia,serif}
.book-controls button{border:1px solid #bda181;border-radius:5px;background:#ead8b9;color:#503728;padding:9px 15px;cursor:pointer;font:14px Georgia,serif}
.book-controls button:disabled{opacity:.38;cursor:default}
.book-link{color:#774759;font-weight:bold}
.book-small{font-size:11px!important;color:#795f4d}
.quiet-page{height:70%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:12px}
.quiet-ornament{font-size:54px;color:#a58565}
.dedication-page .book-page-content{position:relative;height:100%}
.dedication-line{position:absolute;bottom:9%;width:100%;text-align:center;font:16px 'Nothing You Could Do',cursive;color:#30251d}
.close-journal{z-index:20!important}
@media(max-width:680px){
 .journal-dialog{width:min(95vw,540px)!important;max-height:96vh!important}
 .open-book{grid-template-columns:1fr!important;height:min(76vh,660px)!important;overflow:hidden!important}
 .open-page{padding:22px!important;max-height:none!important;overflow:hidden!important}
 .book-binding{display:none!important}
 .book-page-content{font-size:clamp(11px,2.6vw,13px)}
 .book-page-content h2{font-size:clamp(20px,5vw,28px)!important}
 .book-story h3{font-size:12px}
 .book-controls button{padding:9px 10px}
}

/* v29: roomy handwritten pages, dedication at the foot of the album page */
.book-page-content{font-family:'Kalam','Nothing You Could Do',cursive!important;font-size:clamp(14px,1.45vw,17px)!important;line-height:1.36!important;text-align:left!important;hyphens:none!important;}
.book-page-content p{line-height:1.36!important;margin:0 0 .68em!important;white-space:pre-line;}
.book-page-content h2{font-family:'Nothing You Could Do','Kalam',cursive!important;font-size:clamp(23px,2.7vw,34px)!important;margin-bottom:16px!important;}
.book-story h3{font-family:'Kalam',cursive!important;font-size:clamp(14px,1.5vw,18px)!important;font-weight:700!important;margin-bottom:4px!important;}
.book-story{margin-bottom:13px;padding-bottom:9px;}
.book-kicker{font-family:'Kalam',cursive!important;font-size:12px!important;}
.album-page .book-page-content{position:relative!important;padding-bottom:60px!important;}
.album-dedication{position:absolute;bottom:12px;left:0;right:0;text-align:center;font:20px 'Nothing You Could Do','Kalam',cursive;color:#30251d;}
@media(max-width:680px){.book-page-content{font-size:clamp(12px,3.15vw,15px)!important;line-height:1.26!important}.book-page-content p{line-height:1.26!important}.book-page-content h2{font-size:clamp(21px,5vw,28px)!important;margin-bottom:9px!important}.book-story h3{font-size:14px!important}.album-page .book-page-content{padding-bottom:43px!important}.album-dedication{font-size:17px;bottom:5px}}

/* v30: restored handwritten table of contents */
.journal-toc { display:flex; flex-direction:column; gap:clamp(10px,2vh,20px); margin-top:clamp(18px,4vh,40px); }
.toc-entry { display:flex; justify-content:space-between; align-items:baseline; width:100%; padding:8px 4px; border:0; border-bottom:1px solid rgba(85,59,38,.3); background:transparent; color:#4a352a; font:inherit; font-size:1.13em; text-align:left; cursor:pointer; }
.toc-entry:hover,.toc-entry:focus-visible { color:#8a5037; text-decoration:underline; }

/* v31: true book pages: handwritten headings, no duplicate printed kicker. */
.book-kicker{display:none!important}
.open-book{height:min(68vh,620px);min-height:440px}
.open-page{overflow:hidden!important;min-height:0}
.book-page-content{height:calc(100% - 14px)!important;overflow:hidden!important;display:flex;flex-direction:column;justify-content:flex-start;font-size:clamp(13px,1.28vw,16px)!important;line-height:1.38!important}
.book-page-content p{line-height:1.38!important;margin-bottom:.7em!important}
.book-page-content h2{font-size:clamp(23px,2.3vw,30px)!important;line-height:1.15!important;margin-bottom:15px!important}
.continuation-page .book-page-content{justify-content:center}
.inspiration{margin:0 0 1.6em}.inspiration h3{font-family:'Nothing You Could Do','Kalam',cursive;font-size:1.5em;margin:0 0 .25em}
.dedication-page .book-page-content{position:relative;justify-content:center;align-items:center;text-align:center;padding-bottom:55px}
.final-quote{font-family:'Kalam','Nothing You Could Do',cursive;font-size:clamp(15px,1.6vw,20px);line-height:1.85;text-align:center}
.final-dedication{position:absolute;bottom:3%;left:0;right:0;text-align:center;font-family:'Nothing You Could Do','Kalam',cursive;font-size:21px;color:#30251d}
@media(max-width:680px){.open-book{height:min(76vh,660px)!important;min-height:0}.book-page-content{font-size:clamp(12px,3vw,15px)!important}.final-quote{font-size:clamp(13px,3vw,17px);line-height:1.7}}

/* v32: journal finishing details; locked desk and approved art unchanged */
.scripture-ref{display:block;font-family:'Nothing You Could Do','Kalam',cursive;font-size:.92em;margin:-.35em 0 .8em;color:#765b4b}
.find-kiki-links{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;align-content:start}
.find-kiki-links .book-link{display:block;font-size:1.05em;color:#67445a;text-decoration:underline;text-underline-offset:3px}
.find-kiki-links .book-small{grid-column:1/-1}
.beginning-script{position:absolute;bottom:5px;right:10px;font:12px 'Nothing You Could Do','Kalam',cursive;color:#786052}
.closing-page .book-page-content{position:relative}
.closing-script{position:absolute;bottom:8%;right:7%;font:18px 'Nothing You Could Do','Kalam',cursive;color:#765b4b}
.dedication-page .book-page-number,.closing-page .book-page-number{display:none}
@media(max-width:680px){.find-kiki-links{gap:8px}.find-kiki-links .book-link{font-size:.94em}}

/* v36: page-specific illustrated background; transparent feathered watercolor artwork. */
.open-page.willow-contact-page{position:relative;isolation:isolate;}
.open-page.willow-contact-page::before{
 content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
 background-image:url("assets/willow-swan-page14.png");
 background-position:center center;background-size:100% 100%;background-repeat:no-repeat;
 opacity:1;
}
.open-page.willow-contact-page .book-page-content{position:relative;z-index:1;}
.open-page.willow-contact-page .book-page-number{z-index:2;}

/* v38: real concept-sheet illustration, clickable individual book spines */
.book-stack-page .book-page-content{align-items:center;justify-content:flex-start;overflow:hidden!important;}
.book-stack-page .book-page-content h2{align-self:stretch;margin-bottom:3px!important;}
.book-stack-links{position:relative;width:min(100%,305px);max-height:calc(100% - 72px);aspect-ratio:324/328;flex:0 1 auto;min-height:0;}
.book-stack-links img{width:100%;height:100%;display:block;object-fit:contain;user-select:none;pointer-events:none;}
.book-spine-hotspot{position:absolute;left:25%;width:64%;display:block;border-radius:6px;cursor:pointer;z-index:2;}
.book-spine-hotspot:hover{background:rgba(255,244,198,.26);outline:1px solid rgba(113,72,43,.6);}
.book-spine-hotspot:focus-visible{outline:3px solid #854d66;background:rgba(255,244,198,.3);}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;}
.book-links-pending{font-size:12px!important;color:#806757;margin:1px 0 0!important;align-self:center;}
@media(max-width:680px){.book-stack-links{width:min(100%,310px);max-height:calc(100% - 75px);}}

/* v39: full original scene, large enough to fill the Find Kiki page */
.book-stack-page .book-page-content{align-items:center!important;justify-content:flex-start!important;}
.book-stack-page .book-page-content h2{align-self:stretch!important;margin-bottom:4px!important;flex:0 0 auto!important;}
.book-stack-links{position:relative!important;width:min(100%,440px)!important;max-width:100%!important;max-height:calc(100% - 56px)!important;aspect-ratio:346/354!important;flex:0 1 auto!important;min-height:0!important;}
.book-stack-links img{display:block!important;width:100%!important;height:100%!important;object-fit:contain!important;}
.book-links-pending{font-size:12px!important;margin:0!important;flex:0 0 auto!important;}
@media(max-width:680px){.book-stack-links{width:100%!important;max-height:calc(100% - 52px)!important;}}
.book-stack-page .book-spine-hotspot{left:12%!important;width:73%!important;}

/* v40: original Kiki & Pandy sketches isolated from supplied concept sheet. */
.open-page.kiki-portrait-page, .open-page.kiki-dock-page {position:relative;isolation:isolate;}
.open-page.kiki-portrait-page::before, .open-page.kiki-dock-page::before {content:"";position:absolute;pointer-events:none;z-index:0;background-repeat:no-repeat;background-size:contain;}
.open-page.kiki-portrait-page::before {background-image:url("assets/kiki-pandy-portrait-v40.png");right:1%;bottom:1%;width:73%;height:48%;background-position:right bottom;}
.open-page.kiki-dock-page::before {background-image:url("assets/kiki-pandy-dock-v40.png");left:8%;bottom:2%;width:84%;height:86%;background-position:center bottom;}
.open-page.kiki-portrait-page .book-page-content,.open-page.kiki-dock-page .book-page-content{position:relative;z-index:1;}
.open-page.kiki-dock-page .closing-script{z-index:2;right:6%;bottom:3%;}

/* v41: Keep the final caption below the dock illustration, not over Pandy. */
.open-page.kiki-dock-page::before { bottom:11%; height:76%; }
.open-page.kiki-dock-page .closing-script { position:absolute; bottom:1.5%; right:7%; z-index:3; font-size:18px; white-space:nowrap; }

/* v42: supplied hand-drawn illustrations, separate transparent layers; no new imagery. */
.open-page.kiki-dock-page::before{background-image:url("assets/kiki-pandy-dock-clean-v42.png")!important;}
.open-page.thoughts-art-page,.open-page.journal-listen-page{position:relative;isolation:isolate;}
.open-page.thoughts-art-page::before,.open-page.thoughts-art-page::after{content:"";position:absolute;pointer-events:none;z-index:0;background-repeat:no-repeat;background-size:contain;}
.open-page.thoughts-art-page::before{background-image:url("assets/kiki-coffee-v42.png");left:4%;bottom:3%;width:43%;height:48%;background-position:left bottom;}
.open-page.thoughts-art-page::after{background-image:url("assets/pandy-head-v42.png");right:4%;bottom:4%;width:42%;height:44%;background-position:right bottom;}
.open-page.thoughts-art-page .book-page-content{position:relative;z-index:1;}
.journal-album-cover{display:block;width:min(68%,235px);margin:20px auto 0;transform:rotate(-3deg);box-shadow:4px 7px 11px rgba(61,41,31,.3);transition:transform .2s ease;}
.journal-album-cover:hover,.journal-album-cover:focus-visible{transform:rotate(0deg) scale(1.035);}
.journal-album-cover img{display:block;width:100%;height:auto;}
.open-page.journal-listen-page .quiet-page{width:100%;}
/* Botanical corners on selected otherwise spare pages; no decorations on dedication. */
.open-page.continuation-page,.open-page.album-page,.open-page.inspirations-page,.open-page.songs-page{position:relative;isolation:isolate;}
.open-page.continuation-page::before,.open-page.album-page::before,.open-page.inspirations-page::before,.open-page.songs-page::before{content:"";position:absolute;z-index:0;pointer-events:none;background-repeat:no-repeat;background-size:contain;opacity:.72;}
.open-page.continuation-page::before{background-image:url("assets/lavender-sprig-v42.png");width:17%;height:34%;right:2%;bottom:2%;background-position:right bottom;}
.open-page.album-page::before{background-image:url("assets/wildflower-sprig-v42.png");width:18%;height:30%;right:2%;bottom:2%;background-position:right bottom;}
.open-page.inspirations-page::before{background-image:url("assets/lavender-right-v42.png");width:19%;height:35%;right:1%;bottom:2%;background-position:right bottom;}
.open-page.songs-page::before{background-image:url("assets/daisy-sprig-v42.png");width:13%;height:22%;right:1%;bottom:1%;background-position:right bottom;opacity:.5;}
.open-page.continuation-page .book-page-content,.open-page.album-page .book-page-content,.open-page.inspirations-page .book-page-content,.open-page.songs-page .book-page-content{position:relative;z-index:1;}

/* v43: Move Pandy portrait from page 13 to the bottom of page 3. */
.open-page.thoughts-art-page::after{content:none!important;background-image:none!important;}
.open-page.continuation-page::after{
  content:"";position:absolute;pointer-events:none;z-index:0;
  background:url("assets/pandy-head-v42.png") no-repeat right bottom / contain;
  right:3%;bottom:2%;width:35%;height:34%;
}
.open-page.continuation-page .book-page-content{position:relative;z-index:1;}
/* Move the page 9 closing note inward from the right edge. */
.open-page .beginning-script{right:72px;}

/* v44: track titles link to the exact Spotify track URLs supplied by Kiki. */
.book-story .song-title-link{color:inherit;text-decoration:underline;text-decoration-color:rgba(107,66,84,.48);text-decoration-thickness:1px;text-underline-offset:3px;}
.book-story .song-title-link:hover,.book-story .song-title-link:focus-visible{color:#78465f;text-decoration-color:currentColor;}

/* v45 experimental homepage watercolor links note */
.desk-link-note{position:absolute;right:1.5%;top:53%;width:18%;z-index:4;transform:rotate(3deg);filter:drop-shadow(4px 7px 5px rgba(38,24,17,.33))}
.desk-link-note img{display:block;width:100%;height:auto}
.desk-link-note .note-link{position:absolute;left:7%;width:89%;height:9.3%;display:block;border-radius:3px}
.desk-link-note .note-link:hover{background:rgba(244,183,209,.15)}
.desk-link-note .note-link:focus-visible{outline:3px solid #87537e;outline-offset:0}
.note-suno{top:1.5%}.note-soundcloud{top:12.8%}.note-youtube{top:24%}.note-spotify{top:35.3%}.note-album{top:46.5%}.note-instagram{top:57.7%}.note-tiktok{top:69%}.note-email{top:81.2%}
@media(max-width:800px){.desk-link-note{right:0;top:73%;width:33%;transform:rotate(2deg)}}
@media(max-width:480px){.desk-link-note{right:0;top:76%;width:41%;transform:rotate(2deg)}}

/* v46 corrected desk composition: note raised, smaller and layered beneath journal */
@media(min-width:801px){
 .desk-scene .journal{left:31%}
 .desk-scene .featured{right:-1%}
 .desk-scene .desk-link-note{left:63%;right:auto;top:24%;width:14%;z-index:2;transform:rotate(5deg)}
}
@media(min-width:481px) and (max-width:800px){
 .desk-scene .desk-link-note{left:55%;right:auto;top:35%;width:25%;z-index:2}
}
@media(max-width:480px){
 .desk-scene .desk-link-note{left:52%;right:auto;top:36%;width:29%;z-index:2}
}

/* v48: opening artwork only, without altering any other journal page */
.open-page.opening-art-page{padding:0!important;}
.open-page.opening-art-page .book-page-content{height:100%!important;width:100%;overflow:hidden!important;}
.open-page.opening-art-page .opening-art{display:block;width:100%;height:100%;object-fit:fill;}
.open-page.opening-art-page .book-page-number{display:none;}

/* v51: Small original animated Pandy, only on Singles & Other Songs. */
.other-songs-pandy-page .book-page-content{position:relative;}
.other-songs-pandy-page .pandy-animated{position:absolute;bottom:5%;right:7%;width:clamp(66px,7vw,104px);height:auto;max-height:32%;object-fit:contain;pointer-events:none;z-index:1;}
@media(max-width:680px){.other-songs-pandy-page .pandy-animated{width:clamp(62px,19vw,90px);bottom:5%;right:6%;}}


/* v52: Kiki's original lyric pages — retain the existing journal font. */
.lyrics-page .book-page-content{font-family:'Kalam','Nothing You Could Do',cursive!important;text-align:left!important;}
.lyrics-page .book-page-content h2{font-family:'Nothing You Could Do','Kalam',cursive!important;margin:0 0 4px!important;font-size:clamp(21px,2.1vw,27px)!important;line-height:1.06!important;}
.lyric-byline{font-size:11px;margin-bottom:5px;}
.full-lyrics-page .lyric-text{font-size:clamp(8.3px,.86vw,10.3px);line-height:1.08;letter-spacing:-.08px;}
.full-lyrics-page .lyric-text p{font-size:inherit!important;line-height:inherit!important;margin:0 0 3px!important;white-space:pre-line;}
.long-lyrics-page .lyric-text{font-size:clamp(8px,.82vw,9.6px);line-height:1.045;}
.long-lyrics-page .lyric-text p{margin-bottom:2px!important;}
.excerpts-page .book-page-content h2{margin-bottom:16px!important;}
.lyric-scrap{position:relative;background:#f2e4c5b8;border:1px solid #c8ae835e;padding:12px 14px;margin:0 0 16px;box-shadow:2px 3px 6px #6d503021;transform:rotate(-.5deg);}
.lyric-scrap:nth-of-type(2){transform:rotate(.6deg);margin-left:7px;}
.lyric-scrap h3{font-family:'Kalam','Nothing You Could Do',cursive;font-size:16px;margin:0 0 7px;color:#664532;}
.lyric-scrap p{font-size:clamp(12px,1.2vw,15px)!important;line-height:1.21!important;margin:0 0 5px!important;white-space:pre-line;}
@media(max-width:680px){.full-lyrics-page .lyric-text{font-size:clamp(7.8px,1.65vw,10px)}.long-lyrics-page .lyric-text{font-size:clamp(7.4px,1.55vw,9px)}.lyric-scrap{padding:9px 10px;margin-bottom:12px}.lyric-scrap p{font-size:clamp(11px,2.5vw,14px)!important}}

/* v53: Two capped pens, independently positioned. Previous standing pen and cap removed. */
.desk-pen-hummingbird{left:9%!important;top:61%!important;width:25%!important;transform:rotate(-10deg);z-index:4;}
.desk-pen-burgundy{left:65%!important;top:2%!important;width:19%!important;transform:rotate(19deg);z-index:2;}
@media(max-width:800px){.desk-pen-hummingbird{left:7%!important;top:30%!important;width:36%!important}.desk-pen-burgundy{left:59%!important;top:48%!important;width:29%!important}}
@media(max-width:480px){.desk-pen-hummingbird{left:5%!important;top:33%!important;width:40%!important}.desk-pen-burgundy{left:58%!important;top:47%!important;width:33%!important}}

/* v54: smaller pens, gold by lower-left of letter, burgundy above journal. */
.desk-scene .desk-pen-hummingbird{left:10%!important;top:66%!important;width:14%!important;transform:rotate(-10deg)!important;z-index:4!important;}
.desk-scene .desk-pen-burgundy{left:48%!important;top:5%!important;width:13%!important;transform:rotate(19deg)!important;z-index:3!important;}
@media(max-width:800px){.desk-scene .desk-pen-hummingbird{left:8%!important;top:38%!important;width:22%!important}.desk-scene .desk-pen-burgundy{left:47%!important;top:43%!important;width:18%!important}}
@media(max-width:480px){.desk-scene .desk-pen-hummingbird{left:7%!important;top:39%!important;width:24%!important}.desk-scene .desk-pen-burgundy{left:46%!important;top:42%!important;width:20%!important}}

/* v55: burgundy pen entirely above journal; gold pen unchanged. */
@media(min-width:801px){.desk-scene .desk-pen-burgundy{left:47%!important;top:-4%!important;width:10%!important;transform:rotate(-25deg)!important;z-index:5!important;}}

/* v56: rotate only the burgundy pen to lie horizontally above journal. */
@media(min-width:801px){.desk-scene .desk-pen-burgundy{transform:rotate(45deg)!important;}}

/* v57: decorative candle on the upper-left corner of desk */
.desk-scene .desk-candle{position:absolute;left:-1%;top:-2%;width:12%;height:auto;z-index:4;pointer-events:none;user-select:none;filter:drop-shadow(2px 5px 4px rgba(30,18,13,.25));}
@media(max-width:800px){.desk-scene .desk-candle{left:-1%;top:0%;width:17%;}}
@media(max-width:480px){.desk-scene .desk-candle{left:-1%;top:0%;width:20%;}}

/* v58: Compact only the new welcome-letter body; preserve welcome and signature artwork. */
.letter-body { font-size: clamp(8px, .82vw, 12px); line-height: 1.24; }
.letter-body p { margin-bottom: .52em; }

/* v59: loose bouquet at the bottom of the desk. Flip so stems point left and blossoms right. */
.desk-scene .desk-bouquet{position:absolute;left:66%;top:69%;width:25%;height:auto;transform:rotate(35deg) scaleX(-1);transform-origin:center;z-index:3;pointer-events:none;user-select:none;filter:drop-shadow(2px 5px 3px rgba(30,18,13,.20));}
@media(max-width:800px){.desk-scene .desk-bouquet{left:57%;top:74%;width:36%;}}
@media(max-width:480px){.desk-scene .desk-bouquet{left:52%;top:76%;width:42%;}}

/* v62: lengthen the bouquet visually, without changing the flower image or its fullness. */
@media(min-width:801px){.desk-scene .desk-bouquet{left:62%;top:67%;width:31%;transform:rotate(35deg) scaleX(-1) scaleY(.79);transform-origin:center;}}
.desk-scene .desk-pick{position:absolute;width:3.2%;height:auto;z-index:5;pointer-events:none;user-select:none;filter:drop-shadow(2px 3px 2px rgba(29,15,8,.36));}
.desk-scene .desk-pick-one{left:5%;top:79%;transform:rotate(-24deg);}
.desk-scene .desk-pick-two{left:60%;top:7%;transform:rotate(20deg);}
.desk-scene .desk-pick-three{left:62%;top:84%;transform:rotate(-35deg);}
@media(max-width:800px){.desk-scene .desk-pick{width:5%}.desk-scene .desk-pick-one{left:6%;top:34%}.desk-scene .desk-pick-two{left:66%;top:39%}.desk-scene .desk-pick-three{left:70%;top:88%}}
/* v63: make bouquet visibly longer and a little larger on the lace. */
@media(min-width:801px){.desk-scene .desk-bouquet{left:59%;top:63%;width:37%;transform:rotate(35deg) scaleX(-1) scaleY(.88);}}


