:root{--desk: #dce3db;--paper: #ffffff;--paper-shadow: #5a62582e;--pencil-light: #9a9ca3;--today-slot-left: 58%;--today-slot-top: 19%;--today-slot-width: 3%;--today-slot-height: 8%;--digit-slot-left: 36%;--digit-slot-top: 25%;--digit-slot-width: 25%;--digit-slot-height: 10%}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;min-height:100dvh;font-family:Patrick Hand,Caveat,Segoe Print,cursive;color:var(--pencil-light);background:var(--desk)}.viewport{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:clamp(.5rem,2.5vmin,1.5rem)}.paper{width:min(920px,calc(100vw - (2*clamp(.5rem,2.5vmin,1.5rem))));max-width:100%;background:var(--paper);box-shadow:0 1px #ffffffd9 inset,0 3px #0000000a,0 14px 36px var(--paper-shadow),0 28px 64px #5a625814;border-radius:1px}.sheet-inner{padding:clamp(.65rem,2vmin,1.25rem)}.drawing-stack{position:relative;width:100%;container-type:inline-size;container-name:drawing;line-height:0}.drawing-photo{display:block;width:100%;height:auto;vertical-align:top}.today-overlay{position:absolute;left:var(--today-slot-left);top:var(--today-slot-top);width:var(--today-slot-width);height:var(--today-slot-height);display:flex;align-items:center;justify-content:flex-start;pointer-events:none}.days-overlay{position:absolute;left:var(--digit-slot-left);top:var(--digit-slot-top);width:var(--digit-slot-width);min-height:var(--digit-slot-height);height:auto;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;pointer-events:none}.days-stack{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.days-subtime{margin:0;font-family:Patrick Hand,Caveat,cursive;font-weight:200;line-height:1;letter-spacing:.05em;color:#5c6d8f;opacity:.9;font-variant-numeric:tabular-nums;text-shadow:.35px 0 0 rgba(100,110,130,.3),-.2px .35px 0 rgba(255,255,255,.35)}.days-overlay.is-depart-message .days-subtime{display:none}.days-overlay.is-depart-message{left:50%;top:28%;width:min(88%,22rem);height:auto;min-height:unset;transform:translate(-50%);padding:clamp(.25rem,2cqmin,.75rem)}.slot-mask{position:absolute;inset:-5% -7%;background:transparent;border-radius:2px}.today-dynamic{position:relative;z-index:1;margin:0;padding-left:2%;font-family:Patrick Hand,Caveat,cursive;font-weight:400;font-size:clamp(.95rem,6cqw,2rem);line-height:1.05;letter-spacing:-.02em;color:#5c6d8f;text-shadow:.4px 0 0 rgba(100,110,130,.32),-.25px .4px 0 rgba(255,255,255,.35);white-space:nowrap}.days-dynamic{position:relative;z-index:1;margin:0;font-family:Patrick Hand,Caveat,cursive;font-weight:300;font-size:clamp(4.5rem,46cqw,14rem);line-height:.85;letter-spacing:-.04em;color:#5c6d8f;text-align:center;text-shadow:.5px 0 0 rgba(100,110,130,.35),-.3px .5px 0 rgba(255,255,255,.4)}.days-dynamic.is-three-digits{font-size:clamp(2.75rem,34cqw,9.5rem);letter-spacing:-.06em}.days-overlay.is-depart-message .days-dynamic{font-size:clamp(1.35rem,7.5cqw,2.35rem);line-height:1.2;letter-spacing:0;text-align:center;max-width:100%}.days-overlay.is-depart-message .days-stack{gap:0}.fine-time{margin:clamp(.35rem,2vmin,.65rem) 0 0;font-size:clamp(.75rem,2.8cqw,.95rem);letter-spacing:.06em;text-align:center;color:var(--pencil-light);opacity:.58;font-variant-numeric:tabular-nums}.flight-status{margin:clamp(.5rem,2.5vmin,.85rem) auto 0;max-width:min(92%,24rem);padding:clamp(.45rem,2cqw,.7rem) clamp(.55rem,2.5cqw,.85rem);text-align:center;border-radius:4px;background:#ffffffb8;box-shadow:0 1px #5a625814}.flight-status-label{margin:0;font-family:Caveat,Patrick Hand,cursive;font-weight:700;font-size:clamp(1.1rem,4.5cqw,1.55rem);line-height:1.15;color:#4a5f85}.flight-status[data-phase=airborne] .flight-status-label{color:#3d6b8a}.flight-status[data-phase=ground] .flight-status-label,.flight-status[data-phase=arrived] .flight-status-label{color:#5a7a52}.flight-status[data-phase=layover] .flight-status-label{color:#6a5a82}.flight-status[data-phase=completed] .flight-status-label{color:#4a6a48}.flight-status[data-phase=error] .flight-status-label{color:#8a5a4a}.flight-status-detail{margin:.2rem 0 0;font-size:clamp(.78rem,2.9cqw,.95rem);line-height:1.25;color:#5c6d8f;font-variant-numeric:tabular-nums}.flight-status-meta{margin:.35rem 0 0;font-size:clamp(.62rem,2.2cqw,.78rem);line-height:1.3;letter-spacing:.04em;color:var(--pencil-light);opacity:.72}.dev-preview-banner{margin:clamp(.35rem,2vmin,.55rem) auto 0;max-width:min(92%,24rem);padding:.25rem .55rem;font-size:clamp(.62rem,2.2cqw,.78rem);letter-spacing:.04em;text-align:center;color:#6a5040;background:#fff4d2d9;border:1px dashed rgba(120,90,50,.35);border-radius:3px}@media(max-width:480px){.today-dynamic{font-size:clamp(.62rem,4cqw,1.05rem)}.days-dynamic{font-size:clamp(2rem,24cqw,5rem);letter-spacing:-.035em}.days-dynamic.is-three-digits{font-size:clamp(1.45rem,17cqw,3.4rem)}.days-overlay.is-depart-message .days-dynamic{font-size:clamp(1rem,5.25cqw,1.5rem);line-height:1.15}.days-subtime{font-size:clamp(.52rem,5.5cqw,1.1rem);letter-spacing:.06em}.sheet-inner{padding:.5rem}}:root{--arrival-gold: #b8956a;--arrival-title: #2a3838;--arrival-text: #2f3b3b;--arrival-muted: #6d7777;--arrival-card: rgba(255, 255, 255, .74)}.arrival-view{width:min(920px,calc(100vw - (2*clamp(.5rem,2.5vmin,1.5rem))));max-width:100%}.arrival-card{position:relative;width:100%;aspect-ratio:3 / 2;border-radius:6px;overflow:hidden;container-type:inline-size;container-name:arrival;box-shadow:0 1px #ffffffd9 inset,0 3px #0000000a,0 14px 36px var(--paper-shadow),0 28px 64px #5a625814}.arrival-bg{position:absolute;inset:0;background:url(/koh-samui-bg.jpg) center / cover no-repeat}.arrival-gradient{position:absolute;inset:0;background:linear-gradient(95deg,rgba(255,255,255,.9) 0%,rgba(255,255,255,.78) 22%,rgba(255,255,255,.42) 40%,rgba(255,255,255,.12) 52%,transparent 64%);pointer-events:none}.arrival-border{position:absolute;inset:clamp(6px,1.4cqw,12px);border:2px solid rgba(255,255,255,.92);border-radius:3px;pointer-events:none}.arrival-content{position:relative;z-index:1;display:flex;flex-direction:column;height:100%;padding:clamp(1rem,5.5cqw,2.4rem) clamp(1rem,5cqw,2.2rem) clamp(.75rem,3.5cqw,1.6rem);box-sizing:border-box}.arrival-brand{flex-shrink:0}.arrival-logo{display:block;width:clamp(1.6rem,6.2cqw,2.35rem);height:clamp(1.6rem,6.2cqw,2.35rem);color:var(--arrival-gold);margin-bottom:clamp(.35rem,1.8cqw,.7rem)}.arrival-kicker{margin:0;font-family:Cormorant Garamond,Georgia,serif;font-weight:500;font-size:clamp(.72rem,2.8cqw,1.05rem);line-height:1.2;letter-spacing:.01em;color:var(--arrival-gold)}.arrival-title{margin:clamp(.1rem,.6cqw,.25rem) 0 0;font-family:Cormorant Garamond,Georgia,serif;font-weight:700;font-size:clamp(1.65rem,9.5cqw,3.4rem);line-height:.95;letter-spacing:.04em;color:var(--arrival-title)}.arrival-tagline{margin:clamp(.45rem,2.2cqw,.85rem) 0 0;max-width:26em;font-family:Josefin Sans,system-ui,sans-serif;font-weight:400;font-size:clamp(.62rem,2.45cqw,.92rem);line-height:1.45;color:var(--arrival-text)}.arrival-tagline strong{font-weight:600}.arrival-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(.35rem,1.8cqw,.7rem);width:min(100%,22em);margin-top:clamp(.65rem,3.2cqw,1.25rem)}.arrival-cell{display:flex;align-items:center;gap:clamp(.35rem,1.6cqw,.6rem);min-height:clamp(2.4rem,9.5cqw,3.6rem);padding:clamp(.35rem,1.5cqw,.55rem) clamp(.45rem,2cqw,.7rem);background:var(--arrival-card);border-radius:clamp(6px,1.4cqw,10px);box-shadow:0 1px 3px #0000000d}.arrival-cell-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:clamp(1.1rem,4.8cqw,1.65rem);height:clamp(1.1rem,4.8cqw,1.65rem);color:var(--arrival-gold)}.arrival-cell-icon svg{display:block;width:100%;height:100%}.arrival-cell-text{display:flex;flex-direction:column;gap:.14em;min-width:0}.arrival-value{font-family:Josefin Sans,system-ui,sans-serif;font-weight:600;font-size:clamp(.72rem,3.1cqw,1rem);line-height:1.1;color:var(--arrival-text);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.arrival-label{font-family:Josefin Sans,system-ui,sans-serif;font-weight:400;font-size:clamp(.54rem,2.2cqw,.76rem);line-height:1.15;color:var(--arrival-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.arrival-sawasdee{margin:auto 0 0;padding-top:clamp(.5rem,2.5cqw,1rem);font-family:Caveat,cursive;font-weight:500;font-size:clamp(1.1rem,5.5cqw,2rem);line-height:1;color:var(--arrival-gold)}.arrival-sawasdee:after{content:"";display:block;width:clamp(2.5rem,12cqw,4.5rem);height:1px;margin-top:.2em;background:var(--arrival-gold);opacity:.75}.arrival-preview-banner{margin:clamp(.35rem,2vmin,.55rem) auto 0;max-width:min(92%,24rem);padding:.25rem .55rem;font-size:clamp(.62rem,2.2cqw,.78rem);letter-spacing:.04em;text-align:center;color:#6a5040;background:#fff4d2d9;border:1px dashed rgba(120,90,50,.35);border-radius:3px}@media(max-width:480px){.arrival-content{padding:.85rem .75rem .65rem}.arrival-grid{width:100%;gap:.3rem}.arrival-cell{min-height:2.2rem;padding:.3rem .4rem}}
