:root{--paper:#f8f5f0;--ink:#302b27;--muted:#706963;--line:#c8b8a8;--sans:'Source Sans 3',Arial,sans-serif;--serif:'Gentium Plus',Georgia,serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.65}a{color:inherit;text-decoration:none}a:focus-visible{outline:2px solid var(--ink);outline-offset:5px}.wrap{width:min(1200px,calc(100% - 9vw));margin-inline:auto}.skip{position:absolute;top:-100px;left:1rem;background:white;padding:1rem;z-index:20}.skip:focus{top:1rem}.site-header{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding-block:34px}.brand{font-weight:600;letter-spacing:.19em;font-size:1.14rem;white-space:nowrap}.site-header nav{display:flex;gap:clamp(14px,2.6vw,42px);font-size:.88rem;letter-spacing:.12em;font-weight:600}.site-header nav a:hover,.text-link:hover{opacity:.6}.hero{min-height:660px;display:grid;grid-template-columns:1fr 1fr;gap:7%;align-items:center;padding-block:50px 72px}.eyebrow{font-size:.89rem;letter-spacing:.18em;color:var(--muted);font-weight:500}.hero h1{font:italic 400 clamp(7rem,12vw,11.5rem)/.95 var(--serif);letter-spacing:-.055em;margin:22px 0 35px}.poetry{font:400 clamp(1.6rem,2.5vw,2.2rem)/1.38 var(--serif)}.dedication{font-style:italic;margin:0}.rule{height:1px;background:#a99683;width:84px;margin:45px 0 28px}.outline-button{display:inline-flex;align-items:center;gap:22px;border:1px solid var(--ink);padding:11px 22px;margin-top:20px;letter-spacing:.11em;font-weight:600;font-size:.94rem;transition:background .25s,color .25s}.outline-button:hover{background:var(--ink);color:var(--paper)}.hero-art{position:relative;overflow:hidden;min-height:575px;background:linear-gradient(130deg,#e6dbcd 0%,#f0e8dd 35%,#d8cbbb 100%);isolation:isolate}.hero-art:after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 70% 45%,transparent 10%,#e8dfd144 75%),linear-gradient(90deg,#fff4 0%,transparent 70%)}.light{position:absolute;inset:-15%;background:linear-gradient(115deg,transparent 10%,#fff8 40%,transparent 65%);transform:rotate(8deg)}.shadow{position:absolute;display:block;width:100%;height:120%;filter:blur(19px);opacity:.26;transform:rotate(-30deg);background:repeating-conic-gradient(from 10deg at 70% 40%,transparent 0deg 16deg,#766e60 18deg 25deg,transparent 29deg 48deg);border-radius:50%}.shadow.one{left:35%;top:-25%}.shadow.two{left:70%;top:15%;transform:rotate(30deg) scale(.7);opacity:.18}.lower{background:#f4f0eb;padding:78px 0 100px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:8%}.poem{padding-left:20px}.poem .poetry{font-style:normal;font-size:clamp(1.45rem,2.2vw,1.95rem);margin:0 0 28px}.caption{font-size:.72rem;letter-spacing:.14em;color:var(--muted);margin-top:45px}.about{border-left:1px solid var(--line);padding:0 0 0 12%}.about h2{font-size:1.13rem;letter-spacing:.16em;font-weight:600;margin:0 0 14px}.about p{max-width:450px;font-size:1.12rem;line-height:1.65}.text-link{display:inline-block;font-weight:600;letter-spacing:.1em;font-size:.94rem;margin-top:16px}footer{display:flex;justify-content:space-between;gap:20px;padding-block:35px;font-size:.78rem;letter-spacing:.09em;color:var(--muted)}.contact-section{padding:85px 0 100px;background:var(--paper);border-top:1px solid #e7ded5}.contact-inner h2{font:italic 400 clamp(3.5rem,7vw,6rem)/1.1 var(--serif);margin:10px 0 42px}.contact-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}.contact-grid>div{display:flex;flex-direction:column;gap:8px;min-width:0}.contact-label{font-size:.78rem;letter-spacing:.17em;color:var(--muted);font-weight:600}.contact-grid a,.contact-value{font-size:1.1rem;overflow-wrap:anywhere}.contact-grid a:hover{text-decoration:underline;text-underline-offset:4px}.reveal{opacity:0;transform:translateY(15px);transition:opacity .8s ease,transform .8s ease}.reveal.visible{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}}@media(max-width:760px){.site-header{align-items:flex-start;flex-direction:column;gap:14px;padding-block:24px}.site-header nav{flex-wrap:wrap;gap:12px 22px;font-size:.77rem}.hero{grid-template-columns:1fr;gap:35px;padding-top:35px;min-height:auto}.hero h1{font-size:clamp(6rem,22vw,9rem)}.hero-art{min-height:350px}.lower{padding-block:55px}.two-col{grid-template-columns:1fr;gap:42px}.poem{padding-left:0}.about{border-left:0;border-top:1px solid var(--line);padding:35px 0 0}footer{flex-direction:column}.wrap{width:calc(100% - 42px)}}

@media(max-width:760px){.contact-grid{grid-template-columns:1fr;gap:26px}.contact-section{padding:60px 0 75px}}

/* Ethereal meeting of words — artwork integrated into the contact section. */
.contact-section{position:relative;isolation:isolate;overflow:hidden;background:#f8f5f0}
.ether-art{position:absolute;z-index:-1;inset:0;pointer-events:none;background-image:url('ether-connection.webp');background-size:cover;background-position:center 47%;opacity:.83;mix-blend-mode:multiply;mask-image:linear-gradient(to bottom,transparent 0%,#000 23%,#000 75%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 23%,#000 75%,transparent 100%)}
.contact-inner{position:relative;z-index:1}
@media(max-width:760px){.ether-art{background-position:55% center;opacity:.68}}

/* Wrap the contact heading only between the two poetic phrases. */
.contact-title-phrase{white-space:nowrap}
@media(max-width:760px){.contact-inner h2{font-size:clamp(1.65rem,5.5vw,3.5rem)}}

/* Selected poetry: manually controlled, accessible two-poem gallery. */
.poem-slide[hidden]{display:none}
.poem .poetry.poetry-italic{font-style:italic;line-height:1.5;max-width:34ch}
.poem-controls{display:flex;align-items:center;gap:18px;margin-top:20px}
.poem-arrow{font:400 1.4rem/1 var(--sans);color:var(--ink);border:1px solid var(--line);background:transparent;width:45px;height:43px;cursor:pointer;transition:background .2s,color .2s}
.poem-arrow:hover:not(:disabled){background:var(--ink);color:var(--paper)}
.poem-arrow:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.poem-arrow:disabled{opacity:.3;cursor:default}
.poem-count{font-size:.77rem;letter-spacing:.12em;color:var(--muted);font-variant-numeric:tabular-nums}

/* Keep the poetry area steady while changing between excerpts. */
.poem-slides{min-height:clamp(390px,34vw,480px)}
.poem-slide{width:100%}
.poem-slide .poetry{overflow-wrap:normal}
@media(max-width:760px){.poem-slides{min-height:410px}.poem .poetry{font-size:clamp(1.25rem,4.5vw,1.7rem)}}
@media(max-width:390px){.poem-slides{min-height:440px}.poem .poetry{font-size:1.18rem}}

/* About portrait: preserve the original square composition, without cropping. */
.about-portrait{margin:0 0 32px;width:min(100%,365px)}
.about-portrait img{display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:contain}
@media(max-width:760px){.about-portrait{width:min(100%,340px);margin-bottom:28px}}

/* v1.0: water artwork replaces the former leaf shadows; original layout retained. */
.hero-art{background:#e9ded2 url("soft-water.webp") center center / cover no-repeat;}
.hero-art .light,.hero-art .shadow{display:none;}
.hero-art::after{background:linear-gradient(90deg,rgba(248,245,240,.23),transparent 48%),linear-gradient(0deg,rgba(248,245,240,.12),transparent 35%);}

/* Align ABOUT navigation with the beginning of the entire poetry/about section. */
.lower{position:relative}
.section-top-anchor{position:absolute;top:0;left:0;width:1px;height:1px;pointer-events:none}

/* v1.2 — keep the poetry gallery at a stable height and center each poem vertically. */
.poem-slides{display:flex;flex-direction:column;justify-content:center}
.poem-slide{width:100%}
.poem-slide[hidden]{display:none}
.poem-slide .poetry{margin:0}

/* v1.5 — dictionary-style definitions: hover, keyboard focus, and tap. */
.dictionary-word{position:relative;display:inline;color:inherit;background:none;border:0;border-bottom:1px dotted currentColor;padding:0;margin:0;font:inherit;letter-spacing:inherit;line-height:inherit;text-align:inherit;cursor:help;vertical-align:baseline}
.dictionary-word:focus-visible{outline:2px solid #827566;outline-offset:4px}
.dictionary-popover{position:absolute;z-index:30;bottom:calc(100% + 13px);left:50%;transform:translate(-50%,5px);display:block;width:max-content;max-width:min(310px,calc(100vw - 32px));min-width:min(270px,calc(100vw - 32px));padding:16px 18px;border:1px solid #d9cfc3;border-radius:9px;background:#fffcf8;color:#302b27;box-shadow:0 12px 34px rgba(55,42,31,.14);font:400 15px/1.45 var(--sans);letter-spacing:normal;text-align:left;white-space:normal;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s ease,transform .18s ease,visibility .18s}
.dictionary-popover:after{content:"";position:absolute;bottom:-7px;left:calc(50% - 6px);width:12px;height:12px;transform:rotate(45deg);background:#fffcf8;border-right:1px solid #d9cfc3;border-bottom:1px solid #d9cfc3}
.dictionary-head{display:block;font:italic 400 25px/1.15 var(--serif);margin-bottom:8px}
.dictionary-part{font:400 12px/1.2 var(--sans);color:#706963;margin-left:8px}
.dictionary-meaning{display:block}
.dictionary-word:hover .dictionary-popover,.dictionary-word:focus-visible .dictionary-popover,.dictionary-word[aria-expanded="true"] .dictionary-popover{opacity:1;visibility:visible;transform:translate(-50%,0)}
@media(max-width:760px){.dictionary-popover{left:0;transform:translate(0,5px)}.dictionary-word:hover .dictionary-popover,.dictionary-word:focus-visible .dictionary-popover,.dictionary-word[aria-expanded="true"] .dictionary-popover{transform:translate(0,0)}.dictionary-popover:after{left:22px}}
@media(prefers-reduced-motion:reduce){.dictionary-popover{transition:none}}

/* v1.6 — show definitions on linked SOFT. labels without interrupting navigation. */
.dictionary-link{position:relative}
.dictionary-link .dictionary-popover{bottom:calc(100% + 13px);cursor:default}
.dictionary-link:hover .dictionary-popover,.dictionary-link:focus-visible .dictionary-popover{opacity:1;visibility:visible;transform:translate(-50%,0)}
@media(max-width:760px){.dictionary-link:hover .dictionary-popover,.dictionary-link:focus-visible .dictionary-popover{transform:translate(0,0)}}

/* v1.7 — proper-name etymology popovers, matching the existing dictionary style. */
.name-lookup{position:relative;display:inline-block;border-bottom:1px dotted currentColor;cursor:help}
.name-lookup .dictionary-popover{bottom:calc(100% + 13px)}
.name-lookup:hover .dictionary-popover,.name-lookup:focus-within .dictionary-popover{opacity:1;visibility:visible;transform:translate(-50%,0)}
@media(max-width:760px){.name-lookup .dictionary-popover{left:0;transform:translate(0,5px)}.name-lookup:hover .dictionary-popover,.name-lookup:focus-within .dictionary-popover{transform:translate(0,0)}}

.name-lookup[aria-expanded="true"] .dictionary-popover{opacity:1;visibility:visible;transform:translate(-50%,0)}
@media(max-width:760px){.name-lookup[aria-expanded="true"] .dictionary-popover{transform:translate(0,0)}}

/* v1.9 — top navigation definitions open downward, inside the viewport. */
.site-header .dictionary-popover{top:calc(100% + 13px);bottom:auto;}
.site-header .dictionary-popover::after{top:-7px;bottom:auto;border-right:0;border-bottom:0;border-left:1px solid #d9cfc3;border-top:1px solid #d9cfc3;}
.site-header .brand .name-lookup:first-child .dictionary-popover{left:0;transform:translate(0,5px);}
.site-header .brand .name-lookup:first-child:hover .dictionary-popover,
.site-header .brand .name-lookup:first-child:focus-within .dictionary-popover,
.site-header .brand .name-lookup:first-child[aria-expanded="true"] .dictionary-popover{transform:translate(0,0);}
.site-header .brand .name-lookup:first-child .dictionary-popover::after{left:22px;}
.site-header nav .dictionary-link .dictionary-popover{left:auto;right:0;transform:translate(0,5px);}
.site-header nav .dictionary-link:hover .dictionary-popover,
.site-header nav .dictionary-link:focus-visible .dictionary-popover{transform:translate(0,0);}
.site-header nav .dictionary-link .dictionary-popover::after{left:auto;right:22px;}
@media(max-width:760px){
  .site-header .brand .name-lookup:last-child .dictionary-popover{left:0;transform:translate(0,5px);}
  .site-header .brand .name-lookup:last-child:hover .dictionary-popover,
  .site-header .brand .name-lookup:last-child:focus-within .dictionary-popover,
  .site-header .brand .name-lookup:last-child[aria-expanded="true"] .dictionary-popover{transform:translate(0,0);}
  .site-header .brand .name-lookup:last-child .dictionary-popover::after{left:22px;}
}
/* Make the poetry caption lookup inherit its original typographic style. */
.caption .dictionary-word{font:inherit;letter-spacing:inherit;color:inherit;}

/* v2.0 — keep the header lookup above the hero artwork and fully opaque. */
.site-header{position:relative;z-index:100;isolation:isolate;}
.site-header nav a.dictionary-link:hover{opacity:1;}
.site-header nav a.dictionary-link:hover{color:var(--ink);}
.site-header nav .dictionary-link .dictionary-popover{opacity:0;}
.site-header nav .dictionary-link:hover .dictionary-popover,
.site-header nav .dictionary-link:focus-visible .dictionary-popover{opacity:1;}

/* v2.1 — Arrival teaser, vertically centered with the other excerpts. */
.poem-excerpt-title{font-family:var(--sans);font-size:.7rem;letter-spacing:.16em;color:var(--muted);margin:0 0 22px;text-transform:uppercase}

/* v2.2 — align all excerpt headings at the same top edge. */
.poem-slides{justify-content:flex-start}
.poem-excerpt-title{margin:0 0 22px}

/* v2.3 — position all three excerpt headings at the same visual centerline.
   The longest excerpt (Reader Reflection) sets the shared vertical offset. */
.poem-slides{box-sizing:border-box;padding-top:clamp(66px,7vw,94px)}
@media(max-width:760px){.poem-slides{padding-top:76px}}
@media(max-width:390px){.poem-slides{padding-top:82px}}


/* v2.4 — swipe support and mobile-safe dictionary cards. */
.poem-slides{touch-action:pan-y pinch-zoom;overscroll-behavior-x:contain}
@media(max-width:760px){
  .dictionary-word .dictionary-popover,
  .dictionary-link .dictionary-popover,
  .name-lookup .dictionary-popover,
  .site-header .dictionary-popover,
  .site-header nav .dictionary-link .dictionary-popover{
    position:fixed;
    inset:auto auto auto auto;
    top:var(--mobile-popover-top, 80px);
    left:var(--mobile-popover-left, 14px);
    right:auto;
    bottom:auto;
    width:var(--mobile-popover-width, min(310px, calc(100vw - 28px)));
    min-width:0;
    max-width:calc(100vw - 28px);
    max-height:calc(100dvh - 28px);
    overflow-y:auto;
    transform:none;
    z-index:1000;
  }
  .dictionary-word:hover .dictionary-popover,
  .dictionary-word:focus-visible .dictionary-popover,
  .dictionary-word[aria-expanded="true"] .dictionary-popover,
  .dictionary-link:hover .dictionary-popover,
  .dictionary-link:focus-visible .dictionary-popover,
  .name-lookup:hover .dictionary-popover,
  .name-lookup:focus-within .dictionary-popover,
  .name-lookup[aria-expanded="true"] .dictionary-popover,
  .site-header .brand .name-lookup:first-child:hover .dictionary-popover,
  .site-header .brand .name-lookup:first-child[aria-expanded="true"] .dictionary-popover,
  .site-header .brand .name-lookup:last-child:hover .dictionary-popover,
  .site-header .brand .name-lookup:last-child[aria-expanded="true"] .dictionary-popover,
  .site-header nav .dictionary-link:hover .dictionary-popover{
    transform:none;
  }
  .dictionary-popover::after{display:none}
}
