
:root{--bg:#f2ede4;--ink:#302f29;--muted:#756f65;--khaki:#596047;--line:rgba(55,52,45,.11);--r:26px;--shadow:0 20px 55px rgba(45,40,32,.10)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif}img{max-width:100%}a{color:inherit}.nav{position:fixed;z-index:50;top:14px;left:18px;right:18px;height:72px;padding:0 20px;display:flex;align-items:center;border:1px solid rgba(255,255,255,.65);border-radius:24px;background:rgba(246,241,232,.78);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);box-shadow:0 12px 34px rgba(50,45,35,.08)}.brand{text-decoration:none;display:flex;align-items:center;gap:10px;min-width:185px}.trees{font-size:22px;color:var(--khaki);letter-spacing:-8px;padding-right:8px}.brand b{font:500 13px Georgia,serif;letter-spacing:.17em}.desktop{display:flex;justify-content:center;gap:2px;flex:1}.desktop a{padding:11px 9px;border-radius:14px;text-decoration:none;font-size:9px;letter-spacing:.09em;text-transform:uppercase;transition:.2s}.desktop a:hover{transform:translateY(-3px) scale(1.025);background:rgba(255,255,255,.62);box-shadow:0 9px 18px rgba(50,45,35,.08)}.menu{display:none;margin-left:auto;border:0;width:44px;height:44px;border-radius:15px;background:rgba(255,255,255,.6);font-size:20px}.mobile{display:none}.hero{min-height:88vh;position:relative;overflow:hidden;border-radius:0 0 34px 34px}.hero img{width:100%;height:88vh;object-fit:cover;filter:brightness(.67)}.heroCopy{position:absolute;left:7vw;bottom:9vh;color:white;max-width:680px}.hero h1,.pageHead h1{font:400 clamp(44px,6vw,78px)/1 Georgia,serif;margin:10px 0 18px}.hero p{font:18px/1.6 Georgia,serif;max-width:560px}.eyebrow{font-size:10px;letter-spacing:.2em;text-transform:uppercase}.section{max-width:1120px;margin:auto;padding:78px 6vw}.section h2{font:400 clamp(34px,5vw,60px)/1.05 Georgia,serif;margin:0 0 22px}.lead{font:19px/1.7 Georgia,serif;color:#655f56;max-width:760px}.btn{display:inline-block;text-decoration:none;border:1px solid rgba(48,47,41,.22);border-radius:17px;padding:13px 18px;font-size:10px;letter-spacing:.13em;margin-top:16px;transition:.2s}.btn:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(40,36,30,.10)}.grid3{display:grid;grid-template-columns:1.4fr 1fr;gap:18px}.grid3 img{width:100%;object-fit:cover;border-radius:var(--r)}.grid3>img{height:650px}.stack{display:grid;gap:18px}.stack img{height:316px}.pageHead{padding:145px 7vw 45px;max-width:1100px;margin:auto}.pageHead p{font:18px/1.65 Georgia,serif;color:#686158;max-width:720px}.folderList{max-width:760px;margin:auto;padding:0 18px 100px}.folder{display:block;text-decoration:none;margin-bottom:60px}.folderVisual{position:relative;padding-top:55px}.sheet{position:absolute;top:22px;width:76%;height:300px;object-fit:cover;border-radius:25px;box-shadow:var(--shadow);transition:.28s}.sheet.a{left:7%;transform:rotate(-4deg)}.sheet.b{right:5%;transform:rotate(4deg)}.cover{position:relative;z-index:2;width:100%;height:440px;object-fit:cover;border-radius:29px;box-shadow:var(--shadow);transition:.28s}.folder:hover .cover{transform:translateY(-5px) scale(1.01)}.folder:hover .a{transform:translate(-7px,-5px) rotate(-6deg)}.folder:hover .b{transform:translate(7px,-5px) rotate(6deg)}.folder h2{font:400 32px Georgia,serif;margin:18px 0 4px}.folder p{margin:0;color:var(--muted)}.gallery{max-width:900px;margin:auto;padding:0 15px 90px}.gallery img{display:block;width:100%;height:auto;border-radius:var(--r);margin-bottom:18px}.back{text-decoration:none;font-size:11px;letter-spacing:.12em}.about{max-width:1000px;margin:auto;padding:0 7vw 90px;display:grid;grid-template-columns:1fr 1.15fr;gap:45px}.about img{width:100%;border-radius:30px}.about p{font:18px/1.75 Georgia,serif;color:#5f5a52}.cards{max-width:900px;margin:auto;padding:0 18px 90px;display:grid;gap:18px}.card,.login,.contact{background:rgba(255,255,255,.43);border:1px solid rgba(255,255,255,.7);border-radius:28px;padding:28px;box-shadow:0 12px 32px rgba(45,40,32,.06)}.card p{font:18px/1.65 Georgia,serif}.login,.contact{max-width:650px;margin:0 auto 100px}.login{box-shadow:var(--shadow)}input,textarea{width:100%;border:1px solid var(--line);border-radius:18px;padding:15px 17px;background:rgba(255,255,255,.66);font:inherit;margin:7px 0 10px}textarea{min-height:145px}footer{padding:40px 6vw;border-top:1px solid var(--line);font-size:11px}
@media(max-width:900px){.nav{top:10px;left:12px;right:12px;height:66px;border-radius:22px;padding:0 14px}.desktop{display:none}.menu{display:block}.mobile{display:block;position:fixed;z-index:45;top:84px;left:12px;right:12px;padding:10px;border-radius:26px;background:rgba(246,241,232,.93);backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px);box-shadow:var(--shadow);opacity:0;transform:translateY(-10px) scale(.98);pointer-events:none;transition:.25s}.mobile.open{opacity:1;transform:none;pointer-events:auto}.mobile a{display:flex;justify-content:space-between;padding:14px 15px;border-radius:17px;text-decoration:none;font-size:12px;text-transform:uppercase;letter-spacing:.1em}.mobile a:active{background:rgba(89,96,71,.09)}.hero,.hero img{height:82vh;min-height:620px}.heroCopy{left:23px;right:23px;bottom:55px}.section{padding:62px 22px}.grid3{grid-template-columns:1fr}.grid3>img{height:auto}.stack{grid-template-columns:1fr 1fr}.stack img{height:230px}.pageHead{padding:125px 22px 38px}.about{grid-template-columns:1fr;padding:0 22px 80px}.cover{height:390px}.sheet{height:270px}}

/* V12.1 */
@view-transition { navigation: auto; }
.cover { view-transition-name: wedding-story; }
.storyLead { view-transition-name: wedding-story; }
::view-transition-old(wedding-story),::view-transition-new(wedding-story){animation-duration:.58s;animation-timing-function:cubic-bezier(.22,.78,.22,1)}
.folderVisual{transition:transform .32s cubic-bezier(.2,.8,.2,1)}
.folder:hover .folderVisual{transform:translateY(-7px) scale(1.018)}
.folder:hover .cover{transform:translateY(-8px) scale(1.025);box-shadow:0 30px 70px rgba(45,40,32,.18)}
.folder:hover .sheet.a{transform:translate(-20px,-14px) rotate(-8deg) scale(1.025)}
.folder:hover .sheet.b{transform:translate(20px,-14px) rotate(8deg) scale(1.025)}
.sendBtn{background:rgba(255,255,255,.54)!important;color:#24251f!important;border-color:rgba(48,47,41,.22)!important;font-weight:600}
.sendBtn:disabled{opacity:.58}
.formStatus{display:none;margin-top:16px;padding:14px 16px;border-radius:16px;font-size:13px;line-height:1.45}
.formStatus.ok{display:block;background:rgba(89,96,71,.12);color:#39402f}.formStatus.err{display:block;background:rgba(130,65,50,.10);color:#6d342b}
.login input:disabled{opacity:1;color:inherit}.login .galleryBtn{background:var(--khaki);color:#fff;border-color:var(--khaki);cursor:pointer}
.brandMark{width:39px;height:39px;position:relative;flex:0 0 39px}.brandMark i{position:absolute;bottom:5px;background:var(--khaki);clip-path:polygon(50% 0,64% 25%,58% 25%,74% 48%,66% 48%,88% 77%,70% 77%,96% 95%,55% 95%,55% 100%,45% 100%,45% 95%,4% 95%,30% 77%,12% 77%,34% 48%,26% 48%,42% 25%,36% 25%)}.brandMark .c{width:27px;height:37px;left:6px;z-index:2}.brandMark .l{width:19px;height:27px;left:0;opacity:.68}.brandMark .r{width:19px;height:27px;right:0;opacity:.68}.brandMark:after{content:"";position:absolute;z-index:3;top:1px;left:16px;width:8px;height:6px;background:rgba(246,241,232,.95);transform:rotate(-11deg)}
@media (hover:none){.folder:active .folderVisual{transform:scale(.975)}.folder:active .sheet.a{transform:translate(-13px,-10px) rotate(-7deg)}.folder:active .sheet.b{transform:translate(13px,-10px) rotate(7deg)}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}

/* V12.2 — Bewertungen + Liquid Glass Music */
.reviewWrap{max-width:900px;margin:0 auto 100px;padding:0 18px;display:grid;gap:55px}.reviewForm h2,.publishedReviews h2{font:400 clamp(30px,4vw,48px)/1.1 Georgia,serif;margin:9px 0 12px}.reviewIntro{color:var(--muted);line-height:1.55}.starPicker{display:flex;flex-direction:row-reverse;justify-content:flex-end;gap:5px;margin:18px 0 16px}.starPicker input{position:absolute;opacity:0;pointer-events:none}.starPicker label{font-size:37px;line-height:1;color:rgba(89,96,71,.20);cursor:pointer;transition:transform .16s,color .16s}.starPicker label:hover,.starPicker label:hover~label,.starPicker input:checked~label{color:#777c58}.starPicker label:hover{transform:translateY(-2px) scale(1.08)}.emptyReview{margin-top:18px;color:var(--muted)}
.musicChoice{position:fixed;z-index:90;left:50%;bottom:max(24px,env(safe-area-inset-bottom));width:min(430px,calc(100% - 28px));transform:translate(-50%,18px) scale(.97);opacity:0;pointer-events:none;padding:22px;border:1px solid rgba(255,255,255,.72);border-radius:27px;background:rgba(245,240,231,.76);backdrop-filter:blur(28px) saturate(145%);-webkit-backdrop-filter:blur(28px) saturate(145%);box-shadow:0 24px 70px rgba(40,36,30,.20);transition:.38s cubic-bezier(.2,.8,.2,1)}.musicChoice.show{opacity:1;transform:translate(-50%,0) scale(1);pointer-events:auto}.musicChoice h3{font:400 25px/1.1 Georgia,serif;margin:4px 0 8px}.musicChoice p{font:14px/1.5 Georgia,serif;color:#686158;margin:0 0 17px}.musicActions{display:flex;gap:9px}.musicActions button{flex:1;border:1px solid rgba(48,47,41,.14);border-radius:16px;padding:13px 10px;background:rgba(255,255,255,.55);color:#292a24;font-size:10px;letter-spacing:.1em}.musicActions .musicYes{background:var(--khaki);color:#fff;border-color:var(--khaki)}
.musicMini{position:fixed;z-index:89;right:18px;bottom:max(18px,env(safe-area-inset-bottom));width:50px;height:50px;border:1px solid rgba(255,255,255,.72);border-radius:18px;background:rgba(245,240,231,.76);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);box-shadow:0 12px 32px rgba(40,36,30,.15);color:var(--khaki);font-size:20px;display:none;align-items:center;justify-content:center}.musicMini.show{display:flex}.musicMini.playing{animation:musicPulse 2.2s ease-in-out infinite}@keyframes musicPulse{50%{transform:translateY(-2px);box-shadow:0 16px 38px rgba(40,36,30,.20)}}@media(max-width:600px){.musicChoice{padding:19px}.musicChoice h3{font-size:23px}.musicActions{flex-direction:column}.musicMini{right:14px}}

/* V12.2 rev1 — compact, balanced review rating */
.ratingField{border:0;padding:0;margin:22px 0 24px;min-width:0}
.ratingField legend{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:0 0 12px}
.ratingOptions{display:flex;align-items:flex-start;gap:10px;flex-wrap:nowrap}
.ratingOption{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:5px;min-width:46px;padding:9px 7px 8px;border:1px solid rgba(58,58,49,.10);border-radius:15px;background:rgba(255,255,255,.34);cursor:pointer;transition:transform .18s ease,background .18s ease,border-color .18s ease,box-shadow .18s ease}
.ratingOption input{position:absolute!important;opacity:0!important;width:1px!important;height:1px!important;margin:0!important;pointer-events:none}
.ratingDot{width:13px;height:13px;border-radius:50%;border:1.5px solid rgba(70,70,65,.48);background:rgba(255,255,255,.55);box-sizing:border-box;transition:.18s ease}
.ratingStars{font-size:9px;line-height:1;letter-spacing:-1px;color:#777c58;white-space:nowrap}
.ratingNumber{font-size:9px;line-height:1;color:var(--muted)}
.ratingOption:has(input:checked){background:rgba(119,124,88,.10);border-color:rgba(119,124,88,.32);box-shadow:0 7px 20px rgba(55,53,44,.07);transform:translateY(-1px)}
.ratingOption input:checked+.ratingDot{border:4px solid #777c58;background:#fff}
.ratingOption:active{transform:scale(.97)}
@media(max-width:600px){
 .ratingOptions{gap:7px}
 .ratingOption{min-width:42px;padding:8px 5px 7px;border-radius:13px}
 .ratingDot{width:12px;height:12px}
 .ratingStars{font-size:8px}
}

/* V12.2 REV2 */
.musicChoice{z-index:9999!important}.musicMini{z-index:9998!important}

/* V12.2 REV3 — finer review rating proportions */
.ratingOptions{gap:6px!important}
.ratingOption{min-width:38px!important;padding:7px 4px 6px!important;gap:4px!important;border-radius:12px!important}
.ratingDot{width:9px!important;height:9px!important;border-width:1px!important}
.ratingOption input:checked+.ratingDot{border:3px solid #777c58!important}
.ratingStars{font-size:7px!important;letter-spacing:-1px!important}
.ratingNumber{font-size:8px!important}
@media(max-width:600px){
 .ratingOptions{gap:5px!important}
 .ratingOption{min-width:36px!important;padding:6px 4px 6px!important}
 .ratingDot{width:8px!important;height:8px!important}
 .ratingStars{font-size:6.5px!important}
}

/* V12.2 REV4 — Portfolio Liquid Glass */
.musicChoice{z-index:99999!important;bottom:max(22px,env(safe-area-inset-bottom))!important}

/* V12.2 REV5 — hardwired Portfolio Liquid Glass; visible without JavaScript */
.portfolioMusicPrompt{position:fixed;z-index:2147483647;left:50%;bottom:max(24px,env(safe-area-inset-bottom));width:min(430px,calc(100% - 28px));box-sizing:border-box;transform:translateX(-50%);padding:21px;border:1px solid rgba(255,255,255,.78);border-radius:27px;background:rgba(245,240,231,.82);-webkit-backdrop-filter:blur(28px) saturate(145%);backdrop-filter:blur(28px) saturate(145%);box-shadow:0 24px 70px rgba(40,36,30,.22);animation:jkdPromptLife 10s ease forwards}
.portfolioMusicPrompt h3{font:400 25px/1.12 Georgia,serif;margin:5px 0 8px;color:#292a24}.portfolioMusicPrompt p{font:14px/1.5 Georgia,serif;color:#686158;margin:0 0 17px}.portfolioMusicActions{display:flex;gap:9px}.portfolioMusicActions button{flex:1;border:1px solid rgba(48,47,41,.14);border-radius:16px;padding:13px 10px;background:rgba(255,255,255,.62);color:#292a24;font-size:10px;letter-spacing:.1em}.portfolioMusicActions #portfolioMusicYes{background:#596047;color:#fff;border-color:#596047}.portfolioMusicPrompt.dismissed{display:none!important}
.portfolioMusicMini{display:none;position:fixed;z-index:2147483646;right:16px;bottom:max(18px,env(safe-area-inset-bottom));width:48px;height:48px;border:1px solid rgba(255,255,255,.75);border-radius:17px;background:rgba(245,240,231,.80);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);box-shadow:0 12px 32px rgba(40,36,30,.16);color:#596047;font-size:19px}.portfolioMusicMini.show{display:block}
@keyframes jkdPromptLife{0%{opacity:0;transform:translate(-50%,14px) scale(.98)}4%{opacity:1;transform:translate(-50%,0) scale(1)}92%{opacity:1;transform:translate(-50%,0) scale(1)}100%{opacity:0;transform:translate(-50%,8px) scale(.985);visibility:hidden}}
@media(max-width:600px){.portfolioMusicPrompt{padding:19px}.portfolioMusicPrompt h3{font-size:23px}.portfolioMusicActions{flex-direction:column}}

/* V12.2 REV6 — permanent khaki Portfolio music bar */
.portfolioSound{max-width:900px;margin:10px auto 34px;padding:14px 16px;box-sizing:border-box;display:flex;align-items:center;gap:14px;border:1px solid rgba(89,96,71,.18);border-radius:22px;background:rgba(239,235,224,.72);box-shadow:0 10px 30px rgba(45,43,36,.07)}
.portfolioSoundNote{width:43px;height:43px;flex:0 0 43px;border-radius:15px;display:grid;place-items:center;background:#596047;color:#fff;font:25px/1 Georgia,serif;box-shadow:0 7px 18px rgba(89,96,71,.18)}
.portfolioSoundCopy{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}.portfolioSoundCopy .eyebrow{font-size:8px}.portfolioSoundCopy strong{font:400 16px/1.2 Georgia,serif;color:#32342c}
.portfolioSoundButtons{display:flex;gap:7px}.portfolioSoundButtons button{border:1px solid rgba(89,96,71,.22);border-radius:13px;padding:10px 13px;font-size:9px;letter-spacing:.08em;white-space:nowrap;transition:.18s ease}
.portfolioMusicOn{background:#596047;color:#fff}.portfolioMusicOff{background:rgba(255,255,255,.62);color:#45483c}.portfolioSoundButtons button:active{transform:scale(.97)}.portfolioSoundButtons button.active{box-shadow:0 0 0 2px rgba(89,96,71,.16)}
@media(max-width:600px){.portfolioSound{margin:4px 18px 28px;padding:12px;gap:10px;border-radius:19px}.portfolioSoundNote{width:38px;height:38px;flex-basis:38px;border-radius:13px;font-size:22px}.portfolioSoundCopy strong{font-size:14px}.portfolioSoundButtons{gap:5px}.portfolioSoundButtons button{padding:9px 9px;font-size:8px}}

/* V12.2 REV7 — centered Portfolio sound control on iPhone */
@media(max-width:600px){
  .portfolioSound{
    width:calc(100% - 36px)!important;
    max-width:520px!important;
    margin:8px auto 30px!important;
    padding:14px 12px!important;
    display:grid!important;
    grid-template-columns:40px 1fr!important;
    grid-template-areas:"note copy" "buttons buttons"!important;
    align-items:center!important;
    column-gap:11px!important;
    row-gap:11px!important;
    box-sizing:border-box!important;
  }
  .portfolioSoundNote{grid-area:note!important;margin:0!important}
  .portfolioSoundCopy{grid-area:copy!important;text-align:left!important}
  .portfolioSoundCopy strong{font-size:15px!important;line-height:1.18!important}
  .portfolioSoundButtons{
    grid-area:buttons!important;
    width:100%!important;
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:8px!important;
  }
  .portfolioSoundButtons button{
    width:100%!important;
    padding:10px 8px!important;
    text-align:center!important;
    box-sizing:border-box!important;
  }
}

/* V12.2 REV9 — MUSIC-ONLY CENTERING. Portfolio structure untouched. */
@media(max-width:600px){
  .portfolioSound{
    position:relative!important;
    left:50%!important;
    transform:translateX(-50%)!important;
    width:calc(100vw - 36px)!important;
    max-width:620px!important;
    margin:16px 0 30px!important;
    padding:16px 14px!important;
    box-sizing:border-box!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    text-align:center!important;
    gap:8px!important;
  }
  .portfolioSoundNote{
    margin:0 auto!important;
    align-self:center!important;
  }
  .portfolioSoundCopy{
    width:100%!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    text-align:center!important;
    gap:4px!important;
  }
  .portfolioSoundCopy .eyebrow,
  .portfolioSoundCopy strong{
    width:100%!important;
    text-align:center!important;
  }
  .portfolioSoundButtons{
    width:100%!important;
    display:flex!important;
    justify-content:center!important;
    align-items:center!important;
    gap:8px!important;
  }
  .portfolioSoundButtons button{
    flex:0 1 132px!important;
    width:auto!important;
    text-align:center!important;
  }
}
