/* site.css: open-props.css + base.css + theme.css + base-v2.css uniti (stesso ordine di cascata). Modifica qui e aumenta ?v= in tutte le pagine. */
/* ---- open-props.css ---- */
:where(html){--font-system-ui:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif;--font-transitional:Charter,Bitstream Charter,Sitka Text,Cambria,serif;--font-old-style:Iowan Old Style,Palatino Linotype,URW Palladio L,P052,serif;--font-humanist:Seravek,Gill Sans Nova,Ubuntu,Calibri,DejaVu Sans,source-sans-pro,sans-serif;--font-geometric-humanist:Avenir,Montserrat,Corbel,URW Gothic,source-sans-pro,sans-serif;--font-classical-humanist:Optima,Candara,Noto Sans,source-sans-pro,sans-serif;--font-neo-grotesque:Inter,Roboto,Helvetica Neue,Arial Nova,Nimbus Sans,Arial,sans-serif;--font-monospace-slab-serif:Nimbus Mono PS,Courier New,monospace;--font-monospace-code:Dank Mono,Operator Mono,Inconsolata,Fira Mono,ui-monospace,SF Mono,Monaco,Droid Sans Mono,Source Code Pro,Cascadia Code,Menlo,Consolas,DejaVu Sans Mono,monospace;--font-industrial:Bahnschrift,DIN Alternate,Franklin Gothic Medium,Nimbus Sans Narrow,sans-serif-condensed,sans-serif;--font-rounded-sans:ui-rounded,Hiragino Maru Gothic ProN,Quicksand,Comfortaa,Manjari,Arial Rounded MT,Arial Rounded MT Bold,Calibri,source-sans-pro,sans-serif;--font-slab-serif:Rockwell,Rockwell Nova,Roboto Slab,DejaVu Serif,Sitka Small,serif;--font-antique:Superclarendon,Bookman Old Style,URW Bookman,URW Bookman L,Georgia Pro,Georgia,serif;--font-didone:Didot,Bodoni MT,Noto Serif Display,URW Palladio L,P052,Sylfaen,serif;--font-handwritten:Segoe Print,Bradley Hand,Chilanka,TSCu_Comic,casual,cursive;--font-sans:var(--font-system-ui);--font-serif:ui-serif,serif;--font-mono:var(--font-monospace-code);--font-weight-1:100;--font-weight-2:200;--font-weight-3:300;--font-weight-4:400;--font-weight-5:500;--font-weight-6:600;--font-weight-7:700;--font-weight-8:800;--font-weight-9:900;--font-lineheight-00:.95;--font-lineheight-0:1.1;--font-lineheight-1:1.25;--font-lineheight-2:1.375;--font-lineheight-3:1.5;--font-lineheight-4:1.75;--font-lineheight-5:2;--font-letterspacing-0:-.05em;--font-letterspacing-1:.025em;--font-letterspacing-2:.050em;--font-letterspacing-3:.075em;--font-letterspacing-4:.150em;--font-letterspacing-5:.500em;--font-letterspacing-6:.750em;--font-letterspacing-7:1em;--font-size-00:.5rem;--font-size-0:.75rem;--font-size-1:1rem;--font-size-2:1.1rem;--font-size-3:1.25rem;--font-size-4:1.5rem;--font-size-5:2rem;--font-size-6:2.5rem;--font-size-7:3rem;--font-size-8:3.5rem;--font-size-fluid-0:max(.75rem,min(2vw,1rem));--font-size-fluid-1:max(1rem,min(4vw,1.5rem));--font-size-fluid-2:max(1.5rem,min(6vw,2.5rem));--font-size-fluid-3:max(2rem,min(9vw,3.5rem));--size-000:-.5rem;--size-00:-.25rem;--size-1:.25rem;--size-2:.5rem;--size-3:1rem;--size-4:1.25rem;--size-5:1.5rem;--size-6:1.75rem;--size-7:2rem;--size-8:3rem;--size-9:4rem;--size-10:5rem;--size-11:7.5rem;--size-12:10rem;--size-13:15rem;--size-14:20rem;--size-15:30rem;--size-px-000:-8px;--size-px-00:-4px;--size-px-1:4px;--size-px-2:8px;--size-px-3:16px;--size-px-4:20px;--size-px-5:24px;--size-px-6:28px;--size-px-7:32px;--size-px-8:48px;--size-px-9:64px;--size-px-10:80px;--size-px-11:120px;--size-px-12:160px;--size-px-13:240px;--size-px-14:320px;--size-px-15:480px;--size-fluid-1:max(.5rem,min(1vw,1rem));--size-fluid-2:max(1rem,min(2vw,1.5rem));--size-fluid-3:max(1.5rem,min(3vw,2rem));--size-fluid-4:max(2rem,min(4vw,3rem));--size-fluid-5:max(4rem,min(5vw,5rem));--size-fluid-6:max(5rem,min(7vw,7.5rem));--size-fluid-7:max(7.5rem,min(10vw,10rem));--size-fluid-8:max(10rem,min(20vw,15rem));--size-fluid-9:max(15rem,min(30vw,20rem));--size-fluid-10:max(20rem,min(40vw,30rem));--size-content-1:20ch;--size-content-2:45ch;--size-content-3:60ch;--size-header-1:20ch;--size-header-2:25ch;--size-header-3:35ch;--size-xxs:240px;--size-xs:360px;--size-sm:480px;--size-md:768px;--size-lg:1024px;--size-xl:1440px;--size-xxl:1920px;--size-relative-000:-.5ch;--size-relative-00:-.25ch;--size-relative-1:.25ch;--size-relative-2:.5ch;--size-relative-3:1ch;--size-relative-4:1.25ch;--size-relative-5:1.5ch;--size-relative-6:1.75ch;--size-relative-7:2ch;--size-relative-8:3ch;--size-relative-9:4ch;--size-relative-10:5ch;--size-relative-11:7.5ch;--size-relative-12:10ch;--size-relative-13:15ch;--size-relative-14:20ch;--size-relative-15:30ch;--ease-1:cubic-bezier(.25,0,.5,1);--ease-2:cubic-bezier(.25,0,.4,1);--ease-3:cubic-bezier(.25,0,.3,1);--ease-4:cubic-bezier(.25,0,.2,1);--ease-5:cubic-bezier(.25,0,.1,1);--ease-in-1:cubic-bezier(.25,0,1,1);--ease-in-2:cubic-bezier(.50,0,1,1);--ease-in-3:cubic-bezier(.70,0,1,1);--ease-in-4:cubic-bezier(.90,0,1,1);--ease-in-5:cubic-bezier(1,0,1,1);--ease-out-1:cubic-bezier(0,0,.75,1);--ease-out-2:cubic-bezier(0,0,.50,1);--ease-out-3:cubic-bezier(0,0,.3,1);--ease-out-4:cubic-bezier(0,0,.1,1);--ease-out-5:cubic-bezier(0,0,0,1);--ease-in-out-1:cubic-bezier(.1,0,.9,1);--ease-in-out-2:cubic-bezier(.3,0,.7,1);--ease-in-out-3:cubic-bezier(.5,0,.5,1);--ease-in-out-4:cubic-bezier(.7,0,.3,1);--ease-in-out-5:cubic-bezier(.9,0,.1,1);--ease-elastic-out-1:cubic-bezier(.5,.75,.75,1.25);--ease-elastic-out-2:cubic-bezier(.5,1,.75,1.25);--ease-elastic-out-3:cubic-bezier(.5,1.25,.75,1.25);--ease-elastic-out-4:cubic-bezier(.5,1.5,.75,1.25);--ease-elastic-out-5:cubic-bezier(.5,1.75,.75,1.25);--ease-elastic-in-1:cubic-bezier(.5,-0.25,.75,1);--ease-elastic-in-2:cubic-bezier(.5,-0.50,.75,1);--ease-elastic-in-3:cubic-bezier(.5,-0.75,.75,1);--ease-elastic-in-4:cubic-bezier(.5,-1.00,.75,1);--ease-elastic-in-5:cubic-bezier(.5,-1.25,.75,1);--ease-elastic-in-out-1:cubic-bezier(.5,-.1,.1,1.5);--ease-elastic-in-out-2:cubic-bezier(.5,-.3,.1,1.5);--ease-elastic-in-out-3:cubic-bezier(.5,-.5,.1,1.5);--ease-elastic-in-out-4:cubic-bezier(.5,-.7,.1,1.5);--ease-elastic-in-out-5:cubic-bezier(.5,-.9,.1,1.5);--ease-step-1:steps(2);--ease-step-2:steps(3);--ease-step-3:steps(4);--ease-step-4:steps(7);--ease-step-5:steps(10);--ease-elastic-1:var(--ease-elastic-out-1);--ease-elastic-2:var(--ease-elastic-out-2);--ease-elastic-3:var(--ease-elastic-out-3);--ease-elastic-4:var(--ease-elastic-out-4);--ease-elastic-5:var(--ease-elastic-out-5);--ease-squish-1:var(--ease-elastic-in-out-1);--ease-squish-2:var(--ease-elastic-in-out-2);--ease-squish-3:var(--ease-elastic-in-out-3);--ease-squish-4:var(--ease-elastic-in-out-4);--ease-squish-5:var(--ease-elastic-in-out-5);--ease-spring-1:linear(0,0.006,0.025 2.8%,0.101 6.1%,0.539 18.9%,0.721 25.3%,0.849 31.5%,0.937 38.1%,0.968 41.8%,0.991 45.7%,1.006 50.1%,1.015 55%,1.017 63.9%,1.001);--ease-spring-2:linear(0,0.007,0.029 2.2%,0.118 4.7%,0.625 14.4%,0.826 19%,0.902,0.962,1.008 26.1%,1.041 28.7%,1.064 32.1%,1.07 36%,1.061 40.5%,1.015 53.4%,0.999 61.6%,0.995 71.2%,1);--ease-spring-3:linear(0,0.009,0.035 2.1%,0.141 4.4%,0.723 12.9%,0.938 16.7%,1.017,1.077,1.121,1.149 24.3%,1.159,1.163,1.161,1.154 29.9%,1.129 32.8%,1.051 39.6%,1.017 43.1%,0.991,0.977 51%,0.974 53.8%,0.975 57.1%,0.997 69.8%,1.003 76.9%,1);--ease-spring-4:linear(0,0.009,0.037 1.7%,0.153 3.6%,0.776 10.3%,1.001,1.142 16%,1.185,1.209 19%,1.215 19.9% 20.8%,1.199,1.165 25%,1.056 30.3%,1.008 33%,0.973,0.955 39.2%,0.953 41.1%,0.957 43.3%,0.998 53.3%,1.009 59.1% 63.7%,0.998 78.9%,1);--ease-spring-5:linear(0,0.01,0.04 1.6%,0.161 3.3%,0.816 9.4%,1.046,1.189 14.4%,1.231,1.254 17%,1.259,1.257 18.6%,1.236,1.194 22.3%,1.057 27%,0.999 29.4%,0.955 32.1%,0.942,0.935 34.9%,0.933,0.939 38.4%,1 47.3%,1.011,1.017 52.6%,1.016 56.4%,1 65.2%,0.996 70.2%,1.001 87.2%,1);--ease-bounce-1:linear(0,0.004,0.016,0.035,0.063,0.098,0.141,0.191,0.25,0.316,0.391 36.8%,0.563,0.766,1 58.8%,0.946,0.908 69.1%,0.895,0.885,0.879,0.878,0.879,0.885,0.895,0.908 89.7%,0.946,1);--ease-bounce-2:linear(0,0.004,0.016,0.035,0.063,0.098,0.141 15.1%,0.25,0.391,0.562,0.765,1,0.892 45.2%,0.849,0.815,0.788,0.769,0.757,0.753,0.757,0.769,0.788,0.815,0.85,0.892 75.2%,1 80.2%,0.973,0.954,0.943,0.939,0.943,0.954,0.973,1);--ease-bounce-3:linear(0,0.004,0.016,0.035,0.062,0.098,0.141 11.4%,0.25,0.39,0.562,0.764,1 30.3%,0.847 34.8%,0.787,0.737,0.699,0.672,0.655,0.65,0.656,0.672,0.699,0.738,0.787,0.847 61.7%,1 66.2%,0.946,0.908,0.885 74.2%,0.879,0.878,0.879,0.885 79.5%,0.908,0.946,1 87.4%,0.981,0.968,0.96,0.957,0.96,0.968,0.981,1);--ease-bounce-4:linear(0,0.004,0.016 3%,0.062,0.141,0.25,0.391,0.562 18.2%,1 24.3%,0.81,0.676 32.3%,0.629,0.595,0.575,0.568,0.575,0.595,0.629,0.676 48.2%,0.811,1 56.2%,0.918,0.86,0.825,0.814,0.825,0.86,0.918,1 77.2%,0.94 80.6%,0.925,0.92,0.925,0.94 87.5%,1 90.9%,0.974,0.965,0.974,1);--ease-bounce-5:linear(0,0.004,0.016 2.5%,0.063,0.141,0.25 10.1%,0.562,1 20.2%,0.783,0.627,0.534 30.9%,0.511,0.503,0.511,0.534 38%,0.627,0.782,1 48.7%,0.892,0.815,0.769 56.3%,0.757,0.753,0.757,0.769 61.3%,0.815,0.892,1 68.8%,0.908 72.4%,0.885,0.878,0.885,0.908 79.4%,1 83%,0.954 85.5%,0.943,0.939,0.943,0.954 90.5%,1 93%,0.977,0.97,0.977,1);--ease-circ-in:cubic-bezier(.6,.04,.98,.335);--ease-circ-in-out:cubic-bezier(.785,.135,.15,.86);--ease-circ-out:cubic-bezier(.075,.82,.165,1);--ease-cubic-in:cubic-bezier(.55,.055,.675,.19);--ease-cubic-in-out:cubic-bezier(.645,.045,.355,1);--ease-cubic-out:cubic-bezier(.215,.61,.355,1);--ease-expo-in:cubic-bezier(.95,.05,.795,.035);--ease-expo-in-out:cubic-bezier(1,0,0,1);--ease-expo-out:cubic-bezier(.19,1,.22,1);--ease-quad-in:cubic-bezier(.55,.085,.68,.53);--ease-quad-in-out:cubic-bezier(.455,.03,.515,.955);--ease-quad-out:cubic-bezier(.25,.46,.45,.94);--ease-quart-in:cubic-bezier(.895,.03,.685,.22);--ease-quart-in-out:cubic-bezier(.77,0,.175,1);--ease-quart-out:cubic-bezier(.165,.84,.44,1);--ease-quint-in:cubic-bezier(.755,.05,.855,.06);--ease-quint-in-out:cubic-bezier(.86,0,.07,1);--ease-quint-out:cubic-bezier(.23,1,.32,1);--ease-sine-in:cubic-bezier(.47,0,.745,.715);--ease-sine-in-out:cubic-bezier(.445,.05,.55,.95);--ease-sine-out:cubic-bezier(.39,.575,.565,1);--layer-1:1;--layer-2:2;--layer-3:3;--layer-4:4;--layer-5:5;--layer-important:2147483647;--shadow-color:220 3% 15%;--shadow-strength:1%;--shadow-strength-3:calc(var(--shadow-strength) + 2%);--shadow-strength-4:calc(var(--shadow-strength) + 3%);--shadow-strength-5:calc(var(--shadow-strength) + 4%);--shadow-strength-6:calc(var(--shadow-strength) + 5%);--shadow-strength-7:calc(var(--shadow-strength) + 6%);--shadow-strength-8:calc(var(--shadow-strength) + 7%);--shadow-strength-10:calc(var(--shadow-strength) + 9%);--inner-shadow-highlight:inset 0 -.5px 0 0 #fff,inset 0 .5px 0 0 rgba(0,0,0,.067);--shadow-1:0 1px 2px -1px hsl(var(--shadow-color)/var(--shadow-strength-10));--shadow-2:0 3px 5px -2px hsl(var(--shadow-color)/var(--shadow-strength-4)),0 7px 14px -5px hsl(var(--shadow-color)/var(--shadow-strength-6));--shadow-3:0 -1px 3px 0 hsl(var(--shadow-color)/var(--shadow-strength-3)),0 1px 2px -5px hsl(var(--shadow-color)/var(--shadow-strength-3)),0 2px 5px -5px hsl(var(--shadow-color)/var(--shadow-strength-5)),0 4px 12px -5px hsl(var(--shadow-color)/var(--shadow-strength-6)),0 12px 15px -5px hsl(var(--shadow-color)/var(--shadow-strength-8));--shadow-4:0 -2px 5px 0 hsl(var(--shadow-color)/var(--shadow-strength-3)),0 1px 1px -2px hsl(var(--shadow-color)/var(--shadow-strength-4)),0 2px 2px -2px hsl(var(--shadow-color)/var(--shadow-strength-4)),0 5px 5px -2px hsl(var(--shadow-color)/var(--shadow-strength-5)),0 9px 9px -2px hsl(var(--shadow-color)/var(--shadow-strength-6)),0 16px 16px -2px hsl(var(--shadow-color)/var(--shadow-strength-7));--shadow-5:0 -1px 2px 0 hsl(var(--shadow-color)/var(--shadow-strength-3)),0 2px 1px -2px hsl(var(--shadow-color)/var(--shadow-strength-4)),0 5px 5px -2px hsl(var(--shadow-color)/var(--shadow-strength-4)),0 10px 10px -2px hsl(var(--shadow-color)/var(--shadow-strength-5)),0 20px 20px -2px hsl(var(--shadow-color)/var(--shadow-strength-6)),0 40px 40px -2px hsl(var(--shadow-color)/var(--shadow-strength-8));--shadow-6:0 -1px 2px 0 hsl(var(--shadow-color)/var(--shadow-strength-3)),0 3px 2px -2px hsl(var(--shadow-color)/var(--shadow-strength-4)),0 7px 5px -2px hsl(var(--shadow-color)/var(--shadow-strength-4)),0 12px 10px -2px hsl(var(--shadow-color)/var(--shadow-strength-5)),0 22px 18px -2px hsl(var(--shadow-color)/var(--shadow-strength-6)),0 41px 33px -2px hsl(var(--shadow-color)/var(--shadow-strength-7)),0 100px 80px -2px hsl(var(--shadow-color)/var(--shadow-strength-8));--inner-shadow-0:inset 0 0 0 1px hsl(var(--shadow-color)/var(--shadow-strength-10));--inner-shadow-1:inset 0 1px 2px 0 hsl(var(--shadow-color)/var(--shadow-strength-10)),var(--inner-shadow-highlight);--inner-shadow-2:inset 0 1px 4px 0 hsl(var(--shadow-color)/var(--shadow-strength-10)),var(--inner-shadow-highlight);--inner-shadow-3:inset 0 2px 8px 0 hsl(var(--shadow-color)/var(--shadow-strength-10)),var(--inner-shadow-highlight);--inner-shadow-4:inset 0 2px 14px 0 hsl(var(--shadow-color)/var(--shadow-strength-10)),var(--inner-shadow-highlight);--ratio-square:1;--ratio-landscape:4/3;--ratio-portrait:3/4;--ratio-widescreen:16/9;--ratio-ultrawide:18/5;--ratio-golden:1.6180/1;--gray-0:#f8f9fa;--gray-1:#f1f3f5;--gray-2:#e9ecef;--gray-3:#dee2e6;--gray-4:#ced4da;--gray-5:#adb5bd;--gray-6:#868e96;--gray-7:#495057;--gray-8:#343a40;--gray-9:#212529;--gray-10:#16191d;--gray-11:#0d0f12;--gray-12:#030507;--stone-0:#f8fafb;--stone-1:#f2f4f6;--stone-2:#ebedef;--stone-3:#e0e4e5;--stone-4:#d1d6d8;--stone-5:#b1b6b9;--stone-6:#979b9d;--stone-7:#7e8282;--stone-8:#666968;--stone-9:#50514f;--stone-10:#3a3a37;--stone-11:#252521;--stone-12:#121210;--red-0:#fff5f5;--red-1:#ffe3e3;--red-2:#ffc9c9;--red-3:#ffa8a8;--red-4:#ff8787;--red-5:#ff6b6b;--red-6:#fa5252;--red-7:#f03e3e;--red-8:#e03131;--red-9:#c92a2a;--red-10:#b02525;--red-11:#962020;--red-12:#7d1a1a;--pink-0:#fff0f6;--pink-1:#ffdeeb;--pink-2:#fcc2d7;--pink-3:#faa2c1;--pink-4:#f783ac;--pink-5:#f06595;--pink-6:#e64980;--pink-7:#d6336c;--pink-8:#c2255c;--pink-9:#a61e4d;--pink-10:#8c1941;--pink-11:#731536;--pink-12:#59102a;--purple-0:#f8f0fc;--purple-1:#f3d9fa;--purple-2:#eebefa;--purple-3:#e599f7;--purple-4:#da77f2;--purple-5:#cc5de8;--purple-6:#be4bdb;--purple-7:#ae3ec9;--purple-8:#9c36b5;--purple-9:#862e9c;--purple-10:#702682;--purple-11:#5a1e69;--purple-12:#44174f;--violet-0:#f3f0ff;--violet-1:#e5dbff;--violet-2:#d0bfff;--violet-3:#b197fc;--violet-4:#9775fa;--violet-5:#845ef7;--violet-6:#7950f2;--violet-7:#7048e8;--violet-8:#6741d9;--violet-9:#5f3dc4;--violet-10:#5235ab;--violet-11:#462d91;--violet-12:#3a2578;--indigo-0:#edf2ff;--indigo-1:#dbe4ff;--indigo-2:#bac8ff;--indigo-3:#91a7ff;--indigo-4:#748ffc;--indigo-5:#5c7cfa;--indigo-6:#4c6ef5;--indigo-7:#4263eb;--indigo-8:#3b5bdb;--indigo-9:#364fc7;--indigo-10:#2f44ad;--indigo-11:#283a94;--indigo-12:#21307a;--blue-0:#e7f5ff;--blue-1:#d0ebff;--blue-2:#a5d8ff;--blue-3:#74c0fc;--blue-4:#4dabf7;--blue-5:#339af0;--blue-6:#228be6;--blue-7:#1c7ed6;--blue-8:#1971c2;--blue-9:#1864ab;--blue-10:#145591;--blue-11:#114678;--blue-12:#0d375e;--cyan-0:#e3fafc;--cyan-1:#c5f6fa;--cyan-2:#99e9f2;--cyan-3:#66d9e8;--cyan-4:#3bc9db;--cyan-5:#22b8cf;--cyan-6:#15aabf;--cyan-7:#1098ad;--cyan-8:#0c8599;--cyan-9:#0b7285;--cyan-10:#095c6b;--cyan-11:#074652;--cyan-12:#053038;--teal-0:#e6fcf5;--teal-1:#c3fae8;--teal-2:#96f2d7;--teal-3:#63e6be;--teal-4:#38d9a9;--teal-5:#20c997;--teal-6:#12b886;--teal-7:#0ca678;--teal-8:#099268;--teal-9:#087f5b;--teal-10:#066649;--teal-11:#054d37;--teal-12:#033325;--green-0:#ebfbee;--green-1:#d3f9d8;--green-2:#b2f2bb;--green-3:#8ce99a;--green-4:#69db7c;--green-5:#51cf66;--green-6:#40c057;--green-7:#37b24d;--green-8:#2f9e44;--green-9:#2b8a3e;--green-10:#237032;--green-11:#1b5727;--green-12:#133d1b;--lime-0:#f4fce3;--lime-1:#e9fac8;--lime-2:#d8f5a2;--lime-3:#c0eb75;--lime-4:#a9e34b;--lime-5:#94d82d;--lime-6:#82c91e;--lime-7:#74b816;--lime-8:#66a80f;--lime-9:#5c940d;--lime-10:#4c7a0b;--lime-11:#3c6109;--lime-12:#2c4706;--yellow-0:#fff9db;--yellow-1:#fff3bf;--yellow-2:#ffec99;--yellow-3:#ffe066;--yellow-4:#ffd43b;--yellow-5:#fcc419;--yellow-6:#fab005;--yellow-7:#f59f00;--yellow-8:#f08c00;--yellow-9:#e67700;--yellow-10:#b35c00;--yellow-11:#804200;--yellow-12:#663500;--orange-0:#fff4e6;--orange-1:#ffe8cc;--orange-2:#ffd8a8;--orange-3:#ffc078;--orange-4:#ffa94d;--orange-5:#ff922b;--orange-6:#fd7e14;--orange-7:#f76707;--orange-8:#e8590c;--orange-9:#d9480f;--orange-10:#bf400d;--orange-11:#99330b;--orange-12:#802b09;--choco-0:#fff8dc;--choco-1:#fce1bc;--choco-2:#f7ca9e;--choco-3:#f1b280;--choco-4:#e99b62;--choco-5:#df8545;--choco-6:#d46e25;--choco-7:#bd5f1b;--choco-8:#a45117;--choco-9:#8a4513;--choco-10:#703a13;--choco-11:#572f12;--choco-12:#3d210d;--brown-0:#faf4eb;--brown-1:#ede0d1;--brown-2:#e0cab7;--brown-3:#d3b79e;--brown-4:#c5a285;--brown-5:#b78f6d;--brown-6:#a87c56;--brown-7:#956b47;--brown-8:#825b3a;--brown-9:#6f4b2d;--brown-10:#5e3a21;--brown-11:#4e2b15;--brown-12:#422412;--sand-0:#f8fafb;--sand-1:#e6e4dc;--sand-2:#d5cfbd;--sand-3:#c2b9a0;--sand-4:#aea58c;--sand-5:#9a9178;--sand-6:#867c65;--sand-7:#736a53;--sand-8:#5f5746;--sand-9:#4b4639;--sand-10:#38352d;--sand-11:#252521;--sand-12:#121210;--camo-0:#f9fbe7;--camo-1:#e8ed9c;--camo-2:#d2df4e;--camo-3:#c2ce34;--camo-4:#b5bb2e;--camo-5:#a7a827;--camo-6:#999621;--camo-7:#8c851c;--camo-8:#7e7416;--camo-9:#6d6414;--camo-10:#5d5411;--camo-11:#4d460e;--camo-12:#36300a;--jungle-0:#ecfeb0;--jungle-1:#def39a;--jungle-2:#d0e884;--jungle-3:#c2dd6e;--jungle-4:#b5d15b;--jungle-5:#a8c648;--jungle-6:#9bbb36;--jungle-7:#8fb024;--jungle-8:#84a513;--jungle-9:#7a9908;--jungle-10:#658006;--jungle-11:#516605;--jungle-12:#3d4d04;--gradient-space: ;--gradient-1:linear-gradient(to bottom right var(--gradient-space),#1f005c,#5b0060,#870160,#ac255e,#ca485c,#e16b5c,#f39060,#ffb56b);--gradient-2:linear-gradient(to bottom right var(--gradient-space),#48005c,#8300e2,#a269ff);--gradient-3:radial-gradient(circle at top right var(--gradient-space),#0ff,rgba(0,255,255,0)),radial-gradient(circle at bottom left var(--gradient-space),#ff1492,rgba(255,20,146,0));--gradient-4:linear-gradient(to bottom right var(--gradient-space),#00f5a0,#00d9f5);--gradient-5:conic-gradient(from -270deg at 75% 110% var(--gradient-space),#f0f,#fffaf0);--gradient-6:conic-gradient(from -90deg at top left var(--gradient-space),#000,#fff);--gradient-7:linear-gradient(to bottom right var(--gradient-space),#72c6ef,#004e8f);--gradient-8:conic-gradient(from 90deg at 50% 0% var(--gradient-space),#111,50%,#222,#111);--gradient-9:conic-gradient(from .5turn at bottom center var(--gradient-space),#add8e6,#fff);--gradient-10:conic-gradient(from 90deg at 40% -25% var(--gradient-space),gold,#f79d03,#ee6907,#e6390a,#de0d0d,#d61039,#cf1261,#c71585,#cf1261,#d61039,#de0d0d,#ee6907,#f79d03,gold,gold,gold);--gradient-11:conic-gradient(at bottom left var(--gradient-space),#ff1493,cyan);--gradient-12:conic-gradient(from 90deg at 25% -10% var(--gradient-space),#ff4500,#d3f340,#7bee85,#afeeee,#7bee85);--gradient-13:radial-gradient(circle at 50% 200% var(--gradient-space),#000142,#3b0083,#b300c3,#ff059f,#ff4661,#ffad86,#fff3c7);--gradient-14:conic-gradient(at top right var(--gradient-space),lime,cyan);--gradient-15:linear-gradient(to bottom right var(--gradient-space),#c7d2fe,#fecaca,#fef3c7);--gradient-16:radial-gradient(circle at 50% -250% var(--gradient-space),#374151,#111827,#000);--gradient-17:conic-gradient(from -90deg at 50% -25% var(--gradient-space),blue,#8a2be2);--gradient-18:linear-gradient(0deg var(--gradient-space),rgba(255,0,0,.8),rgba(255,0,0,0) 75%),linear-gradient(60deg var(--gradient-space),rgba(255,255,0,.8),rgba(255,255,0,0) 75%),linear-gradient(120deg var(--gradient-space),rgba(0,255,0,.8),rgba(0,255,0,0) 75%),linear-gradient(180deg var(--gradient-space),rgba(0,255,255,.8),rgba(0,255,255,0) 75%),linear-gradient(240deg var(--gradient-space),rgba(0,0,255,.8),rgba(0,0,255,0) 75%),linear-gradient(300deg var(--gradient-space),rgba(255,0,255,.8),rgba(255,0,255,0) 75%);--gradient-19:linear-gradient(to bottom right var(--gradient-space),#ffe259,#ffa751);--gradient-20:conic-gradient(from -135deg at -10% center var(--gradient-space),orange,#ff7715,#ff522a,#ff3f47,#ff5482,#ff69b4);--gradient-21:conic-gradient(from -90deg at 25% 115% var(--gradient-space),red,#f06,#f0c,#c0f,#60f,#00f,#00f,#00f,#00f);--gradient-22:linear-gradient(to bottom right var(--gradient-space),#acb6e5,#86fde8);--gradient-23:linear-gradient(to bottom right var(--gradient-space),#536976,#292e49);--gradient-24:conic-gradient(from .5turn at 0% 0% var(--gradient-space),#00c476,10%,#82b0ff,90%,#00c476);--gradient-25:conic-gradient(at 125% 50% var(--gradient-space),#b78cf7,#ff7c94,#ffcf0d,#ff7c94,#b78cf7);--gradient-26:linear-gradient(to bottom right var(--gradient-space),#9796f0,#fbc7d4);--gradient-27:conic-gradient(from .5turn at bottom left var(--gradient-space),#ff1493,#639);--gradient-28:conic-gradient(from -90deg at 50% 105% var(--gradient-space),#fff,orchid);--gradient-29:radial-gradient(circle at top right var(--gradient-space),#bfb3ff,rgba(191,179,255,0)),radial-gradient(circle at bottom left var(--gradient-space),#86acf9,rgba(134,172,249,0));--gradient-30:radial-gradient(circle at top right var(--gradient-space),#00ff80,rgba(0,255,128,0)),radial-gradient(circle at bottom left var(--gradient-space),#adffd6,rgba(173,255,214,0));--noise-1:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='a'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.005' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23a)'/%3E%3C/svg%3E");--noise-2:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 300 300' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='a'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.05' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23a)'/%3E%3C/svg%3E");--noise-3:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='a'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.25' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23a)'/%3E%3C/svg%3E");--noise-4:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 2056 2056' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='a'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.5' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23a)'/%3E%3C/svg%3E");--noise-5:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 2056 2056' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='a'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23a)'/%3E%3C/svg%3E");--noise-filter-1:contrast(300%) brightness(100%);--noise-filter-2:contrast(200%) brightness(150%);--noise-filter-3:contrast(200%) brightness(250%);--noise-filter-4:contrast(200%) brightness(500%);--noise-filter-5:contrast(200%) brightness(1000%);--animation-fade-in:fade-in .5s var(--ease-3);--animation-fade-in-bloom:fade-in-bloom 2s var(--ease-3);--animation-fade-out:fade-out .5s var(--ease-3);--animation-fade-out-bloom:fade-out-bloom 2s var(--ease-3);--animation-scale-up:scale-up .5s var(--ease-3);--animation-scale-down:scale-down .5s var(--ease-3);--animation-slide-out-up:slide-out-up .5s var(--ease-3);--animation-slide-out-down:slide-out-down .5s var(--ease-3);--animation-slide-out-right:slide-out-right .5s var(--ease-3);--animation-slide-out-left:slide-out-left .5s var(--ease-3);--animation-slide-in-up:slide-in-up .5s var(--ease-3);--animation-slide-in-down:slide-in-down .5s var(--ease-3);--animation-slide-in-right:slide-in-right .5s var(--ease-3);--animation-slide-in-left:slide-in-left .5s var(--ease-3);--animation-shake-x:shake-x .75s var(--ease-out-5);--animation-shake-y:shake-y .75s var(--ease-out-5);--animation-shake-z:shake-z 1s var(--ease-in-out-3);--animation-spin:spin 2s linear infinite;--animation-ping:ping 5s var(--ease-out-3) infinite;--animation-blink:blink 1s var(--ease-out-3) infinite;--animation-float:float 3s var(--ease-in-out-3) infinite;--animation-bounce:bounce 2s var(--ease-squish-2) infinite;--animation-pulse:pulse 2s var(--ease-out-3) infinite;--border-size-1:1px;--border-size-2:2px;--border-size-3:5px;--border-size-4:10px;--border-size-5:25px;--radius-1:2px;--radius-2:5px;--radius-3:1rem;--radius-4:2rem;--radius-5:4rem;--radius-6:8rem;--radius-drawn-1:255px 15px 225px 15px/15px 225px 15px 255px;--radius-drawn-2:125px 10px 20px 185px/25px 205px 205px 25px;--radius-drawn-3:15px 255px 15px 225px/225px 15px 255px 15px;--radius-drawn-4:15px 25px 155px 25px/225px 150px 25px 115px;--radius-drawn-5:250px 25px 15px 20px/15px 80px 105px 115px;--radius-drawn-6:28px 100px 20px 15px/150px 30px 205px 225px;--radius-round:1e5px;--radius-blob-1:30% 70% 70% 30%/53% 30% 70% 47%;--radius-blob-2:53% 47% 34% 66%/63% 46% 54% 37%;--radius-blob-3:37% 63% 56% 44%/49% 56% 44% 51%;--radius-blob-4:63% 37% 37% 63%/43% 37% 63% 57%;--radius-blob-5:49% 51% 48% 52%/57% 44% 56% 43%;--radius-conditional-1:clamp(0px,calc(100vw - 100%) * 1e5,var(--radius-1));--radius-conditional-2:clamp(0px,calc(100vw - 100%) * 1e5,var(--radius-2));--radius-conditional-3:clamp(0px,calc(100vw - 100%) * 1e5,var(--radius-3));--radius-conditional-4:clamp(0px,calc(100vw - 100%) * 1e5,var(--radius-4));--radius-conditional-5:clamp(0px,calc(100vw - 100%) * 1e5,var(--radius-5));--radius-conditional-6:clamp(0px,calc(100vw - 100%) * 1e5,var(--radius-6));--palette-hue:250;--palette-hue-rotate-by:0;--palette-chroma:0.15;--color-1:oklch(98% calc(var(--palette-chroma)*0.03) calc(var(--palette-hue) + var(--palette-hue-rotate-by)*0));--color-2:oklch(97% calc(var(--palette-chroma)*0.06) calc(var(--palette-hue) + var(--palette-hue-rotate-by)*1));--color-3:oklch(93% calc(var(--palette-chroma)*0.1) calc(var(--palette-hue) + var(--palette-hue-rotate-by)*2));--color-4:oklch(84% calc(var(--palette-chroma)*0.12) calc(var(--palette-hue) + var(--palette-hue-rotate-by)*3));--color-5:oklch(80% calc(var(--palette-chroma)*0.16) calc(var(--palette-hue) + var(--palette-hue-rotate-by)*4));--color-6:oklch(71% calc(var(--palette-chroma)*0.19) calc(var(--palette-hue) + var(--palette-hue-rotate-by)*5));--color-7:oklch(66% calc(var(--palette-chroma)*0.2) calc(var(--palette-hue) + var(--palette-hue-rotate-by)*6));--color-8:oklch(58% calc(var(--palette-chroma)*0.21) calc(var(--palette-hue) + var(--palette-hue-rotate-by)*7));--color-9:oklch(53% calc(var(--palette-chroma)*0.2) calc(var(--palette-hue) + var(--palette-hue-rotate-by)*8));--color-10:oklch(49% calc(var(--palette-chroma)*0.19) calc(var(--palette-hue) + var(--palette-hue-rotate-by)*9));--color-11:oklch(42% calc(var(--palette-chroma)*0.17) calc(var(--palette-hue) + var(--palette-hue-rotate-by)*10));--color-12:oklch(35% calc(var(--palette-chroma)*0.15) calc(var(--palette-hue) + var(--palette-hue-rotate-by)*11));--color-13:oklch(27% calc(var(--palette-chroma)*0.12) calc(var(--palette-hue) + var(--palette-hue-rotate-by)*12));--color-14:oklch(20% calc(var(--palette-chroma)*0.09) calc(var(--palette-hue) + var(--palette-hue-rotate-by)*13));--color-15:oklch(16% calc(var(--palette-chroma)*0.07) calc(var(--palette-hue) + var(--palette-hue-rotate-by)*14));--color-16:oklch(10% calc(var(--palette-chroma)*0.05) calc(var(--palette-hue) + var(--palette-hue-rotate-by)*15))}@media (prefers-color-scheme:dark){:where(html){--shadow-color:220 40% 2%;--shadow-strength:25%;--inner-shadow-highlight:inset 0 -.5px 0 0 hsla(0,0%,100%,.067),inset 0 .5px 0 0 rgba(0,0,0,.467)}}@supports (background:linear-gradient(to right in oklab,#000,#fff)){:where(html){--gradient-space:in oklab}}@keyframes fade-in{to{opacity:1}}@keyframes fade-in-bloom{0%{filter:brightness(1) blur(20px);opacity:0}10%{filter:brightness(2) blur(10px);opacity:1}to{filter:brightness(1) blur(0);opacity:1}}@keyframes fade-out{to{opacity:0}}@keyframes fade-out-bloom{to{filter:brightness(1) blur(20px);opacity:0}10%{filter:brightness(2) blur(10px);opacity:1}0%{filter:brightness(1) blur(0);opacity:1}}@keyframes scale-up{to{transform:scale(1.25)}}@keyframes scale-down{to{transform:scale(.75)}}@keyframes slide-out-up{to{transform:translateY(-100%)}}@keyframes slide-out-down{to{transform:translateY(100%)}}@keyframes slide-out-right{to{transform:translateX(100%)}}@keyframes slide-out-left{to{transform:translateX(-100%)}}@keyframes slide-in-up{0%{transform:translateY(100%)}}@keyframes slide-in-down{0%{transform:translateY(-100%)}}@keyframes slide-in-right{0%{transform:translateX(-100%)}}@keyframes slide-in-left{0%{transform:translateX(100%)}}@keyframes shake-x{0%,to{transform:translateX(0)}20%{transform:translateX(-5%)}40%{transform:translateX(5%)}60%{transform:translateX(-5%)}80%{transform:translateX(5%)}}@keyframes shake-y{0%,to{transform:translateY(0)}20%{transform:translateY(-5%)}40%{transform:translateY(5%)}60%{transform:translateY(-5%)}80%{transform:translateY(5%)}}@keyframes shake-z{0%,to{transform:rotate(0deg)}20%{transform:rotate(-2deg)}40%{transform:rotate(2deg)}60%{transform:rotate(-2deg)}80%{transform:rotate(2deg)}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes ping{90%,to{opacity:0;transform:scale(2)}}@keyframes blink{0%,to{opacity:1}50%{opacity:.5}}@keyframes float{50%{transform:translateY(-25%)}}@keyframes bounce{25%{transform:translateY(-20%)}40%{transform:translateY(-3%)}0%,60%,to{transform:translateY(0)}}@keyframes pulse{50%{transform:scale(.9)}}@media (prefers-color-scheme:dark){@keyframes fade-in-bloom{0%{filter:brightness(1) blur(20px);opacity:0}10%{filter:brightness(.5) blur(10px);opacity:1}to{filter:brightness(1) blur(0);opacity:1}}}@media (prefers-color-scheme:dark){@keyframes fade-out-bloom{to{filter:brightness(1) blur(20px);opacity:0}10%{filter:brightness(.5) blur(10px);opacity:1}0%{filter:brightness(1) blur(0);opacity:1}}}

/* ---- base.css ---- */
:root {
  --accent: #c0703a;
  --accent-2: #e0a96d;
  --bg: #faf6f1;
  --surface: #ffffff;
  --ink: #241d18;
  --muted: #6f655c;
  --border: #e9e0d4;
  --radius: 24px;
  --radius-pill: 999px;
  --font-head: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-body: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --hero-overlay:
    linear-gradient(105deg, rgba(0,0,0,.66) 0%, rgba(0,0,0,.34) 44%, rgba(0,0,0,.06) 72%),
    linear-gradient(0deg, rgba(0,0,0,.58) 0%, rgba(0,0,0,.10) 42%, transparent 60%);
  --shadow: 0 30px 60px rgba(20,12,6,.18);
  --shadow-sm: 0 10px 26px rgba(20,12,6,.10);
  --maxw: 1180px;
  
  --space-1: .25rem; --space-2: .5rem; --space-3: .75rem; --space-4: 1rem;
  --space-5: 1.5rem; --space-6: 2rem; --space-7: 3rem; --space-8: 4.5rem;
  --radius-sm: 12px; --radius-md: 18px; --radius-lg: 28px;
  --shadow-xs: 0 2px 8px rgba(20,12,6,.06);
  --shadow-lg: 0 44px 90px rgba(20,12,6,.24);
  --accent-soft: color-mix(in srgb, var(--accent) 12%, transparent);
  --accent-ink: color-mix(in srgb, var(--accent) 70%, var(--ink));
  --ring: color-mix(in srgb, var(--accent) 22%, transparent);
  --dark-panel: color-mix(in srgb, var(--accent) 16%, #15110d);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; scroll-padding-top: 92px; }
html, body { overflow-x: clip; }
::selection { background: color-mix(in srgb, var(--accent) 26%, transparent); color: var(--ink); }
body {
  margin: 0; background: var(--bg); color: var(--ink);
  font-family: var(--font-body); line-height: 1.75; font-size: 18px;
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
}
h1, h2, h3 { font-family: var(--font-head); line-height: 1.08; margin: 0 0 .5em; font-weight: 800; letter-spacing: -.02em; }
p { margin: 0 0 1rem; }
a { color: var(--accent); text-decoration: none; }
img { max-width: 100%; display: block; }
:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; border-radius: 6px; }
.skip-link { position: absolute; left: -999px; top: 0; background: var(--dark-panel); color: #fff; padding: .7rem 1.1rem; z-index: 100; border-radius: 0 0 10px 0; font-weight: 700; }
.skip-link:focus { left: 0; }
.site-header {
  position: sticky; top: 0; z-index: 50;
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: .9rem clamp(1rem, 4vw, 3.5rem);
  background: color-mix(in srgb, var(--surface) 68%, transparent);
  backdrop-filter: saturate(160%) blur(18px);
  -webkit-backdrop-filter: saturate(160%) blur(18px);
  border-bottom: 1px solid color-mix(in srgb, var(--surface) 55%, transparent);
  box-shadow: 0 6px 24px -14px rgba(20,12,6,.5);
}
.brand { font-family: var(--font-head); font-weight: 800; font-size: 1.3rem; color: var(--ink); letter-spacing: -.02em; }
.brand--logo { display: inline-flex; align-items: center; padding: .1rem 0; flex: none; }
.brand-logo { height: 56px; width: auto; max-width: 230px; display: block; object-fit: contain; border-radius: 10px; }
.main-nav ul { display: flex; gap: 1.4rem; list-style: none; margin: 0; padding: 0; flex-wrap: wrap; align-items: center; }
.main-nav a { color: var(--ink); font-weight: 600; font-size: .95rem; position: relative; padding: .2rem 0; }
.main-nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -2px; height: 2px; background: var(--accent); transition: right .25s ease; }
.main-nav a:hover { color: var(--accent); }
.main-nav a:hover::after { right: 0; }
.social-links { display: flex; gap: .55rem; align-items: center; }
.social-links a {
  width: 40px; height: 40px; display: grid; place-items: center; border-radius: 50%;
  background: color-mix(in srgb, var(--accent) 10%, transparent); color: var(--accent);
  border: 1px solid color-mix(in srgb, var(--accent) 25%, transparent);
  transition: transform .18s, background .18s, color .18s;
}
.social-links a:hover { background: var(--accent); color: #fff; transform: translateY(-3px); }
.btn {
  display: inline-flex; align-items: center; gap: .5rem; font-weight: 700;
  padding: .95rem 2rem; border-radius: var(--radius-pill); cursor: pointer;
  border: 2px solid transparent; transition: transform .18s, box-shadow .18s, background .18s;
  font-size: 1.02rem; font-family: var(--font-head);
}
.btn-primary {
  color: #fff; background-image: none;
  background: color-mix(in srgb, var(--accent) 88%, #1c120a);
  box-shadow: 0 10px 26px color-mix(in srgb, var(--accent) 38%, transparent);
}
.btn-primary:hover { transform: translateY(-3px); background: color-mix(in srgb, var(--accent) 70%, #1c120a); box-shadow: 0 16px 34px color-mix(in srgb, var(--accent) 50%, transparent); color: #fff; }
.btn:active { transform: translateY(0) scale(.98); }
.btn.is-loading { position: relative; color: transparent !important; pointer-events: none; }
.btn.is-loading::after { content: ""; position: absolute; inset: 0; margin: auto; width: 18px; height: 18px; border: 2px solid rgba(255,255,255,.5); border-top-color: #fff; border-radius: 50%; animation: btnspin .7s linear infinite; }
@keyframes btnspin { to { transform: rotate(360deg); } }
.btn-ghost { background: transparent; border-color: var(--accent); color: var(--accent-ink, var(--accent)); }
.hero .btn-ghost { color: #fff; border-color: currentColor; backdrop-filter: blur(4px); background: rgba(255,255,255,.08); }
.btn-ghost:hover { background: var(--accent); border-color: var(--accent); color: #fff; }
.hero {
  position: relative; min-height: 100svh; display: grid; align-items: center; overflow: hidden;
  background-size: cover; background-position: center; color: #fff; isolation: isolate;
}
.hero::before { content: ""; position: absolute; inset: 0; background: var(--hero-overlay); z-index: -1; }
.hero::after {
  content: ""; position: absolute; inset: -20% -20% auto -20%; height: 70%; z-index: -1;
  background: radial-gradient(60% 60% at 70% 20%, color-mix(in srgb, var(--accent-2) 55%, transparent), transparent 70%);
  mix-blend-mode: screen; opacity: .8; animation: glow 9s ease-in-out infinite alternate;
}
.hero--small { min-height: 60vh; }
.hero-inner { position: relative; padding: clamp(2rem, 6vw, 7rem); max-width: 960px; animation: rise 1s cubic-bezier(.2,.7,.2,1) both; }
.hero h1 { font-size: clamp(2.8rem, 8vw, 5.6rem); text-shadow: 0 4px 30px rgba(0,0,0,.45); font-weight: 800; }
.hero .subtitle { font-size: clamp(1.1rem, 2.6vw, 1.6rem); opacity: .96; max-width: 40ch; }
.hero .eyebrow {
  display: inline-block; letter-spacing: .28em; text-transform: uppercase; font-size: .78rem;
  font-weight: 700; padding: .45rem 1rem; margin-bottom: 1.2rem; border-radius: var(--radius-pill);
  background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.28); backdrop-filter: blur(6px);
}
.hero .rating { margin: .8rem 0 1.6rem; font-weight: 700; }
.rating, .poi .dist, .badge, .count-up { font-variant-numeric: tabular-nums; }
.hero-cta { display: flex; gap: 1rem; flex-wrap: wrap; margin-top: 1.2rem; }
.hero::after, .hero { will-change: transform; }
.section { max-width: 1120px; margin: 0 auto; padding: clamp(3.5rem, 8vw, 7rem) clamp(1rem, 4vw, 2rem); }
.section--alt { position: relative; background: var(--surface); max-width: none; overflow: hidden; }
.section--alt::before {
  content: ""; position: absolute; inset: -30% -10% auto auto; width: 60%; height: 120%;
  background: radial-gradient(50% 50% at 70% 30%, var(--accent-soft), transparent 70%);
  pointer-events: none; z-index: 0;
}
.section--alt > .section-inner { position: relative; z-index: 1; max-width: 1120px; margin: 0 auto; }
.section-title { font-size: clamp(1.9rem, 4.4vw, 2.9rem); display: inline-block; }
.section-title::after { content: ""; display: block; width: 56px; height: 4px; border-radius: 99px; margin-top: .7rem; background: var(--accent); }
.lead { color: var(--muted); max-width: 72ch; font-size: 1.08rem; }
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 1.6rem; margin-top: 2.4rem; }
.card {
  position: relative; padding: 1.9rem; overflow: hidden; border: 1px solid var(--border);
  border-radius: var(--radius); box-shadow: var(--shadow-sm);
  background: var(--surface);
  transition: transform .22s cubic-bezier(.2,.7,.2,1), box-shadow .22s, border-color .22s;
}
.card::before { content: ""; position: absolute; left: 0; top: 0; height: 4px; width: 100%; background: linear-gradient(90deg, var(--accent), var(--accent-2)); transform: scaleX(0); transform-origin: left; transition: transform .3s ease; }
.section--alt .card { background: var(--bg); }
.card:hover { transform: translateY(-6px); box-shadow: var(--shadow); border-color: color-mix(in srgb, var(--accent) 35%, var(--border)); }
.card:hover::before { transform: scaleX(1); }
.card h3 { color: var(--accent); font-size: 1.25rem; }
.gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 1.1rem; margin-top: 2.4rem; }
.gallery .media { position: relative; height: 250px; border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-sm); background-size: cover; background-position: center; margin: 0; }
.gallery .media picture, .gallery .media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gallery .media img { transition: transform .5s ease, opacity .7s ease; }
.gallery .media:hover { box-shadow: var(--shadow); }
.gallery .media:hover img { transform: scale(1.06); }
html.js .media.blur-up img { opacity: 0; }
.media img.loaded { opacity: 1 !important; }
.map-wrap { margin-top: 1.8rem; border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); border: 1px solid var(--border); }
.map { width: 100%; height: 400px; border: 0; display: block; filter: saturate(1.05); }
.form-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: clamp(1.6rem, 4vw, 2.6rem); box-shadow: var(--shadow); max-width: 680px; margin-top: 1.6rem; }
.section--alt .form-card { background: var(--bg); }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.1rem; }
.field { display: flex; flex-direction: column; gap: .4rem; min-width: 0; }
.field.full { grid-column: 1 / -1; }
.field label { font-size: .82rem; font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: .04em; }
.field input, .field textarea, .field select { width: 100%; min-width: 0; max-width: 100%; padding: .85rem .95rem; border: 1px solid var(--border); border-radius: 12px; font: inherit; background: var(--surface); color: var(--ink); transition: border-color .15s, box-shadow .15s; }
.field input[type="checkbox"], .field input[type="radio"] { width: auto; min-width: 0; max-width: none; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; }
.field input:focus, .field textarea:focus { border-color: var(--accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 20%, transparent); outline: none; }
.form-status { min-height: 1.4em; font-weight: 700; margin: .9rem 0 0; }
.form-status.ok { color: #2e7d32; }
.form-status.err { color: #c0392b; }
.nearby-group + .nearby-group { margin-top: clamp(2.8rem, 5vw, 4rem); }
.poi { display: flex; flex-direction: column; }
.poi .kind { color: var(--muted); font-size: .85rem; text-transform: capitalize; margin: 0; }
.poi .dist { font-weight: 800; color: var(--accent); margin-top: .6rem; font-size: 1.1rem; }
.poi--link { color: inherit; text-decoration: none; cursor: pointer; }
.poi--link h3 { color: var(--accent); }
.poi--link:hover { color: inherit; }
.badge { display: inline-block; background: linear-gradient(135deg, var(--accent-2), var(--accent)); color: #fff; border-radius: var(--radius-pill); padding: .25rem .9rem; font-size: .8rem; font-weight: 700; }
.note { color: var(--muted); font-size: .95rem; }
.review-cta { display: inline-flex; align-items: center; gap: .5rem; }
.site-footer { background: var(--dark-panel); color: #e8ddd0; text-align: center; padding: 3.5rem 1rem; }
.site-footer .brand, .site-footer strong { color: #fff; }
.site-footer .social-links { justify-content: center; margin: 1.2rem 0; }
.site-footer .social-links a { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.22); color: #fff; }
.site-footer .btn-ghost { color: #fff; margin-top: .6rem; }
.demo-note { font-size: .8rem; opacity: .55; margin-top: .8rem; }
@keyframes rise { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: none; } }
@keyframes glow { from { transform: translateY(-6%) scale(1); opacity: .55; } to { transform: translateY(4%) scale(1.1); opacity: .85; } }
.reveal { transition: opacity .8s ease, transform .8s ease; }
html.js .reveal { opacity: 0; transform: translateY(28px); }
html.js .reveal.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .reveal { opacity: 1; transform: none; }
}
.main-nav a.active { color: var(--accent); }
.main-nav a.active::after { right: 0; }
.nav-toggle { display: none; background: none; border: 0; cursor: pointer; padding: 8px; flex-direction: column; gap: 5px; }
.nav-toggle span { display: block; width: 26px; height: 3px; background: var(--ink); border-radius: 3px; transition: transform .25s, opacity .25s; }
.nav-close { display: none; background: none; border: 0; cursor: pointer; color: var(--ink); font-size: 2.2rem; line-height: 1; padding: 0 .3rem; }
.lightbox { position: fixed; inset: 0; background: rgba(0,0,0,.85); display: none; align-items: center; justify-content: center; z-index: 80; padding: 4vw; cursor: zoom-out; }
.lightbox.open { display: flex; }
.lightbox img { max-width: 92vw; max-height: 90vh; border-radius: 12px; box-shadow: 0 20px 60px rgba(0,0,0,.6); }
@media (max-width: 760px) {
  .form-grid { grid-template-columns: 1fr; }
  .site-header { backdrop-filter: none; -webkit-backdrop-filter: none; background: var(--surface); }
  .nav-toggle { display: flex; z-index: 70; }
  body.nav-open .nav-toggle { display: none; }
  .nav-close { display: block; position: absolute; top: 1rem; right: 1.1rem; z-index: 65; }
  .main-nav { position: fixed; inset: 0 0 0 28%; background: var(--surface); transform: translateX(100%); transition: transform .3s ease; padding: 5rem 1.5rem; box-shadow: var(--shadow); z-index: 60; overflow-y: auto; }
  body.nav-open .main-nav { transform: none; }
  body.nav-open { overflow: hidden; }
  html:has(body.nav-open) { overflow: hidden; }
  .main-nav ul { flex-direction: column; gap: 1.2rem; }
  
  .topbar { font-size: .72rem !important; gap: 0 .8rem !important; padding: .25rem .7rem !important; line-height: 1.15 !important; }
  .topbar span { padding: 0 !important; margin: 0 !important; }
  .hero { padding-top: 2rem; }
  .site-header .social-links { display: none; }
  .brand-logo { height: 44px; max-width: 150px; }
  .header-right { gap: .5rem; min-width: 0; }
  .lang-switch { font-size: .8rem; gap: .1rem; }
  .lang-switch a { padding: .22rem .4rem; }
  .cookie-banner { padding: .8rem 1rem; gap: .55rem; }
  .cookie-banner p { flex: 1 1 100%; font-size: .85rem; text-align: center; }
  .cookie-banner .cookie-actions { width: 100%; justify-content: center; flex-wrap: wrap; }
  .cookie-banner .btn { flex: 1 1 auto; }
}
.topbar {
  display: flex; justify-content: center; gap: 1.5rem; flex-wrap: wrap;
  background: var(--dark-panel); color: #f3ece0; font-size: .82rem; font-weight: 600;
  padding: .5rem 1rem; letter-spacing: .02em;
}
.topbar a { color: #fff; }
.topbar a:hover { color: var(--accent-2); }
.hero-inner { max-width: 1000px; }
.hero-card {
  display: inline-block; margin-top: 1.6rem; padding: 1.1rem 1.4rem; border-radius: 18px;
  background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.25);
  backdrop-filter: blur(10px); box-shadow: 0 10px 30px rgba(0,0,0,.25);
}
.hero-card .meta { display: flex; gap: 1.4rem; flex-wrap: wrap; font-weight: 600; }
.hero-card .meta span { display: inline-flex; align-items: center; gap: .4rem; }
.scroll-cue { position: absolute; left: 50%; bottom: 22px; transform: translateX(-50%); width: 26px; height: 42px; border: 2px solid rgba(255,255,255,.7); border-radius: 14px; z-index: 1; }
.scroll-cue::after { content: ""; position: absolute; left: 50%; top: 8px; width: 4px; height: 8px; background: #fff; border-radius: 4px; transform: translateX(-50%); animation: cue 1.6s infinite; }
@keyframes cue { 0%{opacity:0;transform:translate(-50%,0)} 40%{opacity:1} 80%{opacity:0;transform:translate(-50%,12px)} }
.hero::after {
  background:
    radial-gradient(40% 50% at 78% 18%, color-mix(in srgb, var(--accent-2) 60%, transparent), transparent 70%),
    radial-gradient(34% 44% at 18% 12%, color-mix(in srgb, var(--accent) 45%, transparent), transparent 72%);
}
.features { background: var(--surface); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.features-inner { max-width: var(--maxw); margin: 0 auto; padding: 2.2rem clamp(1rem,4vw,2rem); display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 1.2rem; }
.feature { display: flex; align-items: center; gap: .8rem; font-weight: 600; }
.feature .ic { flex: 0 0 auto; width: 46px; height: 46px; border-radius: 14px; display: grid; place-items: center; color: #fff; background: linear-gradient(135deg, var(--accent), var(--accent-2)); box-shadow: var(--shadow-sm); font-size: 1.2rem; }
.stats { background: linear-gradient(135deg, color-mix(in srgb, var(--accent) 92%, #000), var(--accent)); color: #fff; }
.stats-inner { max-width: var(--maxw); margin: 0 auto; padding: clamp(2.5rem,5vw,4rem) clamp(1rem,4vw,2rem); display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1.5rem; text-align: center; }
.stat .num { font-family: var(--font-head); font-size: clamp(2.2rem, 5vw, 3.4rem); font-weight: 800; line-height: 1; }
.stat .lbl { opacity: .9; font-size: .95rem; margin-top: .4rem; }
.quote { max-width: 760px; margin: 2.4rem auto 0; text-align: center; font-size: clamp(1.2rem,2.6vw,1.6rem); font-style: italic; color: var(--ink); }
.quote cite { display: block; margin-top: 1rem; font-size: .95rem; font-style: normal; color: var(--muted); font-weight: 700; }
.float-cta {
  position: fixed; right: 20px; bottom: 20px; z-index: 60; opacity: 0; transform: translateY(20px);
  transition: opacity .3s, transform .3s; box-shadow: 0 14px 30px color-mix(in srgb, var(--accent) 50%, transparent);
}
.float-cta.show { opacity: 1; transform: none; }
@media print { .float-cta, .scroll-cue { display: none; } }
.social-links a.wa:hover { background: #25D366; border-color: #25D366; color: #fff; }
.portals { display: flex; gap: .6rem; flex-wrap: wrap; justify-content: center; margin: .8rem 0; }
.portal { font-size: .85rem; font-weight: 700; padding: .45rem 1rem; border-radius: var(--radius-pill); background: rgba(255,255,255,.10); border: 1px solid rgba(255,255,255,.25); color: #fff; }
.portal:hover { background: var(--accent); border-color: var(--accent); color: #fff; }
.gallery .media:nth-child(3n+1) { height: 300px; }
.gallery .media:nth-child(4n+2) { height: 210px; }
@media (max-width: 760px) { .gallery .media { height: 200px !important; } }
.hero-media {
  position: absolute; inset: 0; z-index: -2;
  background-size: cover; background-position: center;
  transform: scale(1.02); will-change: transform;
  animation: kenburns 26s ease-in-out 0s infinite alternate both;
}
@keyframes kenburns { from { transform: scale(1.02); } to { transform: scale(1.16); } }
@media (min-width: 880px) {
  .grid--bento { grid-template-columns: repeat(3, 1fr); grid-auto-rows: 1fr; }
  .grid--bento > .card:first-child { grid-column: span 2; grid-row: span 2; display: flex; flex-direction: column; justify-content: center; }
  .grid--bento > .card:first-child h3 { font-size: 1.7rem; }
  .grid--bento > .card:first-child p { font-size: 1.08rem; }
}
.reviews-carousel { position: relative; margin-top: 1.6rem; }
.reviews-track {
  display: grid; grid-auto-flow: column; grid-auto-columns: minmax(290px, 1fr);
  gap: 1.4rem; overflow-x: auto; scroll-snap-type: x mandatory;
  padding: .4rem .2rem 1.2rem; scrollbar-width: none; -webkit-overflow-scrolling: touch;
}
.reviews-track::-webkit-scrollbar { display: none; }
.reviews-track .review-card { scroll-snap-align: center; }
.review-card .stars { color: var(--accent); letter-spacing: .12em; font-size: 1.05rem; margin-bottom: .4rem; }
@media (min-width: 980px) { .reviews-track { grid-auto-columns: calc((100% - 2 * 1.4rem) / 3); } }
.review-card { scroll-snap-align: start; }
.gallery-carousel { position: relative; margin-top: 2.4rem; }
.gallery-track {
  display: grid; grid-auto-flow: column; grid-auto-columns: 82%;
  gap: 1.1rem; overflow-x: auto; scroll-snap-type: x mandatory;
  padding: .2rem .2rem 1rem; scrollbar-width: none; -webkit-overflow-scrolling: touch;
}
.gallery-track::-webkit-scrollbar { display: none; }
.gallery-track .media {
  position: relative; height: 340px; border-radius: var(--radius); overflow: hidden;
  box-shadow: var(--shadow-sm); background-size: cover; background-position: center; margin: 0;
  scroll-snap-align: start;
}
.gallery-track .media picture, .gallery-track .media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gallery-track .media img { transition: transform .5s ease, opacity .7s ease; }
.gallery-track .media:hover img { transform: scale(1.05); }
@media (min-width: 980px) { .gallery-track { grid-auto-columns: calc((100% - 2 * 1.1rem) / 3); } .gallery-carousel:has(.rev-nav:not([hidden])) { padding: 0 52px; } }
@media (max-width: 760px) { .gallery-track .media { height: 240px; } }
.gallery-marquee .gallery-track, .reviews-marquee .reviews-track { scroll-snap-type: none; }
.gallery-marquee .gallery-track, .reviews-marquee .reviews-track { scroll-behavior: auto; }
.gallery-marquee, .reviews-marquee { cursor: default; }
.rev-nav {
  position: absolute; top: 50%; transform: translateY(-50%); z-index: 3;
  width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--border);
  background: var(--surface, #fff); color: var(--ink); font-size: 1.5rem; line-height: 1;
  cursor: pointer; box-shadow: 0 4px 14px rgba(0,0,0,.14); transition: opacity .2s, transform .15s;
  display: flex; align-items: center; justify-content: center;
}
.rev-nav:hover { transform: translateY(-50%) scale(1.06); }
.rev-nav[disabled] { opacity: .3; cursor: default; }
.rev-prev { left: 0; } .rev-next { right: 0; }
@media (min-width: 980px) { .reviews-carousel:has(.rev-nav:not([hidden])) { padding: 0 52px; } }
@media (max-width: 560px) { .rev-nav { display: none; } }
.carousel-dots { display: flex; gap: .5rem; justify-content: center; margin-top: .2rem; }
.carousel-dots button { width: 9px; height: 9px; padding: 0; border: 0; border-radius: 50%; background: color-mix(in srgb, var(--ink) 22%, transparent); cursor: pointer; transition: transform .2s, background .2s; }
.carousel-dots button.active { background: var(--accent); transform: scale(1.35); }
@media (min-width: 980px) { .carousel-dots { display: none; } }
.faq { max-width: 820px; margin-top: 2rem; display: grid; gap: .9rem; }
.faq-item { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md); padding: .2rem 1.3rem; box-shadow: var(--shadow-xs); transition: box-shadow .2s, border-color .2s; }
.faq-item[open] { box-shadow: var(--shadow-sm); border-color: color-mix(in srgb, var(--accent) 30%, var(--border)); }
.faq-item summary { cursor: pointer; font-family: var(--font-head); font-weight: 700; font-size: 1.08rem; padding: 1rem 0; list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { content: "+"; color: var(--accent); font-size: 1.5rem; line-height: 1; transition: transform .25s; }
.faq-item[open] summary::after { transform: rotate(45deg); }
.faq-a { padding: 0 0 1.1rem; color: var(--muted); }
.map-wrap { transition: box-shadow .25s, transform .25s; }
.map-wrap:hover { box-shadow: var(--shadow-lg); }
.map { filter: saturate(1.05) brightness(.96); }
.header-right { display: flex; align-items: center; gap: .9rem; }
.lang-switch { position: relative; font-family: var(--font-head, inherit); font-weight: 700; font-size: .85rem; }
.lang-switch > summary { list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: .32rem; padding: .3rem .55rem; border-radius: 8px; color: var(--lang-fg, #24303f); border: 1px solid var(--lang-bd, rgba(0,0,0,.16)); background: var(--lang-bg, #fff); line-height: 1; }
.lang-switch > summary::-webkit-details-marker { display: none; }
.lang-switch > summary::marker { content: ""; }
.lang-switch .lang-caret { transition: transform .2s ease; opacity: .7; }
.lang-switch[open] .lang-caret { transform: rotate(180deg); }
.lang-menu { position: absolute; top: calc(100% + 6px); right: 0; background: var(--lang-bg, #fff); border: 1px solid var(--lang-bd, rgba(0,0,0,.16)); border-radius: 10px; box-shadow: 0 18px 40px -12px rgba(0,0,0,.35); padding: .35rem; display: flex; flex-direction: column; gap: .12rem; min-width: 68px; z-index: 80; }
.lang-menu a { padding: .42rem .6rem; border-radius: 7px; color: var(--lang-fg, #24303f); opacity: .72; line-height: 1; text-align: center; }
.lang-menu a.active { color: #fff; background: var(--lang-active, var(--accent, #4f46e5)); opacity: 1; }
.lang-menu a:not(.active):hover { opacity: 1; background: rgba(0,0,0,.06); }
.cookie-banner { position: fixed; left: 0; right: 0; top: 0; bottom: auto; transform: none; z-index: 90; width: 100%; max-width: none; background: var(--surface); color: var(--ink); border: 0; border-bottom: 1px solid var(--border); border-radius: 0; box-shadow: 0 8px 26px rgba(0,0,0,.20); padding: .8rem clamp(1rem,4vw,2.2rem); display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .7rem 1.3rem; }
.cookie-banner[hidden] { display: none; }
.cookie-banner p { margin: 0; font-size: .9rem; flex: 1 1 min(420px, 100%); min-width: 0; }
.cookie-banner .cookie-actions { display: flex; gap: .6rem; flex-wrap: wrap; justify-content: center; }
.cookie-banner .btn { padding: .6rem 1.2rem; font-size: .9rem; }
.cookie-banner .btn-ghost { color: var(--ink); }
@media print { .cookie-banner { display: none; } }
.legal-page h2 { margin-top: 1.6rem; }
.a11y-toggle { position: fixed; left: 16px; bottom: 16px; z-index: 78; width: 48px; height: 48px; border-radius: 50%; border: 0; cursor: pointer; background: var(--accent); color: #fff; font-size: 1.3rem; box-shadow: var(--shadow-sm); display: grid; place-items: center; }
.a11y-panel { position: fixed; left: 16px; bottom: 74px; z-index: 78; background: var(--surface); color: var(--ink); border: 1px solid var(--border); border-radius: var(--radius-md); box-shadow: var(--shadow); padding: .8rem; display: none; flex-direction: column; gap: .5rem; min-width: 200px; }
.a11y-panel.open { display: flex; }
.a11y-panel button { font: inherit; font-weight: 700; text-align: left; padding: .6rem .8rem; border: 1px solid var(--border); border-radius: 10px; background: var(--bg); color: var(--ink); cursor: pointer; }
.a11y-panel button:hover { border-color: var(--accent); color: var(--accent); }
.a11y-panel button.on { background: var(--accent); color: #fff; border-color: var(--accent); }
@media print { .a11y-toggle, .a11y-panel { display: none !important; } }
html.a11y-lg body { font-size: 1.16rem; line-height: 1.85; }
html.a11y-lg .lead { font-size: 1.22rem; }
html.a11y-hc { --ink: #111; --muted: #333; --bg: #fff; --surface: #fff; --border: #222; --hero-overlay: linear-gradient(180deg, rgba(0,0,0,.55), rgba(0,0,0,.8)); }
html.a11y-hc a { text-decoration: underline; }
html.a11y-hc .btn-primary { color: #fff; }
h1, h2, h3 { font-weight: 600; letter-spacing: -.012em; }
.section { padding: clamp(4.5rem, 10vw, 9rem) clamp(1.2rem, 5vw, 2.5rem); }
.section-title { font-weight: 600; font-size: clamp(2rem, 5vw, 3.4rem); line-height: 1.08; }
.section-title::after { width: 40px; height: 2px; background: var(--accent); background-image: none; border-radius: 2px; }
.hero { align-items: end; }
.hero::after { display: none; }
.hero-inner { padding-bottom: clamp(2.6rem, 7vw, 6rem); }
.hero h1 { font-weight: 500; font-size: clamp(2.8rem, 8.5vw, 6rem); line-height: 1.0; text-shadow: 0 2px 24px rgba(0,0,0,.34); }
.hero .eyebrow { background: rgba(255,255,255,.10); border: 1px solid rgba(255,255,255,.28); letter-spacing: .3em; font-weight: 600; backdrop-filter: blur(4px); }
.btn { border-radius: 10px; letter-spacing: .04em; }
.btn-primary { background: var(--accent); background-image: none; box-shadow: none; }
.btn-primary:hover { background: var(--accent-ink, var(--accent-2)); background-image: none; transform: translateY(-2px); box-shadow: var(--shadow-sm); }
.card { background: var(--surface); background-image: none; border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: none; }
.section--alt .card { background: var(--bg); }
.card::before { display: none; }
.card:hover { transform: translateY(-4px); box-shadow: var(--shadow-sm); border-color: color-mix(in srgb, var(--accent) 38%, var(--border)); }
.card h3 { color: var(--ink); }
.section--alt::before { display: none; }
.badge { background: transparent; background-image: none; color: var(--accent); border: 1px solid color-mix(in srgb, var(--accent) 42%, transparent); }
.social-links a { background: transparent; border: 1px solid var(--border); color: var(--ink); border-radius: 10px; }
.social-links a:hover { background: var(--accent); border-color: var(--accent); color: #fff; transform: translateY(-2px); }
.gallery .media { box-shadow: none; }
.form-card { box-shadow: var(--shadow-sm); }

/* ---- theme.css ---- */
:root {
  --accent: #1f87a8;
  --accent-2: #7fc6d8;
  --bg: #f4f9fb;
  --surface: #ffffff;
  --ink: #16313a;
  --muted: #5f7780;
  --border: #dcebef;
  --radius: 14px;
  --font-head: "Trebuchet MS", "Segoe UI", system-ui, sans-serif;
  --font-body: "Segoe UI", system-ui, sans-serif;
  --hero-overlay: linear-gradient(180deg, rgba(10,40,55,.28), rgba(8,30,45,.62));
}

/* ---- base-v2.css ---- */
:root {
  --ink: #0F172A;            
  --bg: #F8FAFC;             
  --surface: #FFFFFF;
  --muted: #64748B;          
  --border: #E2E8F0;         
  --dark-panel: #0F172A;     
  
  --radius: 18px; --radius-sm: 12px; --radius-md: 16px; --radius-lg: 24px;
  --shadow-xs: 0 1px 2px rgba(20,12,6,.05), 0 1px 3px rgba(20,12,6,.05);
  --shadow-sm: 0 2px 6px -2px rgba(20,12,6,.10), 0 6px 18px -8px rgba(20,12,6,.12);
  --shadow:    0 8px 24px -10px rgba(20,12,6,.18), 0 24px 60px -30px rgba(20,12,6,.30);
  --shadow-lg: 0 30px 80px -32px rgba(20,12,6,.42);
  --maxw: 1200px;
  --hero-overlay:
    linear-gradient(100deg, rgba(20,14,9,.46) 0%, rgba(20,14,9,.12) 44%, transparent 72%),
    linear-gradient(0deg, rgba(20,14,9,.34) 0%, transparent 42%);
}
body { line-height: 1.7; }
h1, h2, h3 { letter-spacing: -.025em; }
.site-header {
  padding-block: 1rem;
  background: color-mix(in srgb, var(--surface) 68%, transparent);
  backdrop-filter: saturate(150%) blur(20px); -webkit-backdrop-filter: saturate(150%) blur(20px);
  border-bottom: 1px solid color-mix(in srgb, #fff 40%, transparent);
  box-shadow: 0 8px 28px -22px rgba(20,12,6,.4);
}
.brand { font-size: 1.25rem; }
.main-nav a { font-weight: 600; }
.hero { margin-top: -68px; }
.hero--small { margin-top: -64px; }
@media (max-width: 760px) { .hero { margin-top: -58px; } .hero--small { margin-top: -56px; } }
.hero { min-height: 100svh; }
.hero::after { opacity: .42; }                 
.hero-inner { max-width: 1040px; padding: clamp(2rem, 6vw, 8rem); }
.hero h1 { font-size: clamp(3rem, 8.5vw, 6rem); line-height: 1.02; letter-spacing: -.035em; }
.hero .subtitle { font-size: clamp(1.15rem, 2.4vw, 1.55rem); max-width: 46ch; opacity: .95; line-height: 1.55; }
.hero .eyebrow {
  letter-spacing: .24em; font-size: .76rem; padding: .5rem 1.05rem;
  background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.34);
}
.hero-cta { gap: .9rem; margin-top: 1.6rem; }
.section { max-width: 1200px; padding: clamp(4.5rem, 9vw, 8.5rem) clamp(1.2rem, 4vw, 2rem); }
#gallery:has(+ #faq) { padding-bottom: clamp(2rem, 4.5vw, 3.5rem); }
#gallery + #faq { padding-top: clamp(2rem, 4.5vw, 3.5rem); }
.section--alt > .section-inner { max-width: 1200px; }
.section--alt::before { opacity: .55; }
.section-title { font-size: clamp(2.1rem, 4.6vw, 3.1rem); letter-spacing: -.03em; }
.section-title::after { width: 52px; height: 3px; margin-top: .85rem; }
.lead { font-size: 1.12rem; line-height: 1.7; max-width: 66ch; }
.grid { gap: 1.8rem; margin-top: 2.8rem; }
.card { padding: 2rem; border-radius: var(--radius-lg); border-color: color-mix(in srgb, var(--ink) 8%, transparent); box-shadow: var(--shadow-sm); }
.card:hover { transform: translateY(-8px); box-shadow: var(--shadow); }
.card h3 { font-size: 1.3rem; letter-spacing: -.02em; }
.gallery { gap: 1.1rem; margin-top: 2.8rem; }
.gallery .media { border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); }
.gallery .media:hover { box-shadow: var(--shadow); }
.btn { padding: 1rem 2.1rem; letter-spacing: -.01em; border-radius: var(--radius-pill); }
.map-wrap { border-radius: var(--radius-lg); box-shadow: var(--shadow); }
.form-card { border-radius: var(--radius-lg); box-shadow: var(--shadow); padding: clamp(1.8rem, 4vw, 3rem); }
.field input, .field textarea, .field select { border-radius: 12px; padding: .95rem 1.05rem; }
.social-links a { box-shadow: var(--shadow-xs); }
.card, .btn, .gallery .media, .social-links a { transition: transform .24s cubic-bezier(.2,.7,.2,1), box-shadow .24s ease, border-color .24s ease, background .2s ease; }
@media (prefers-reduced-motion: no-preference) {
  html.js .reveal .grid > *, html.js .reveal.in .grid > * { will-change: transform; }
  html.js .reveal.in .grid > * { animation: v2rise .6s cubic-bezier(.2,.7,.2,1) both; }
  html.js .reveal .grid > :nth-child(2) { animation-delay: .07s; }
  html.js .reveal .grid > :nth-child(3) { animation-delay: .14s; }
  html.js .reveal .grid > :nth-child(4) { animation-delay: .21s; }
  html.js .reveal .grid > :nth-child(5) { animation-delay: .28s; }
  html.js .reveal .grid > :nth-child(n+6) { animation-delay: .35s; }
}
@keyframes v2rise { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: none; } }
@media (max-width: 760px) {
  .site-header { backdrop-filter: none; -webkit-backdrop-filter: none; background: var(--surface); }
}
@media (prefers-reduced-motion: reduce) {
  .hero::after { animation: none; }
}
.service-card { display: flex; flex-direction: column; overflow: hidden; padding: 0; }
.service-media { aspect-ratio: 4/3; overflow: hidden; }
.service-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.service-body { padding: 1.1rem 1.2rem 1.3rem; }
.service-body h3 { margin: 0 0 .35rem; }
.service-price { margin: 0 0 .5rem; }
.booking-services { margin-top: 1.1rem; border: 1px solid var(--border, #e5e0d8); border-radius: var(--radius-lg, 16px); padding: 1rem 1.2rem; min-width: 0; }
.booking-services legend { font-weight: 700; padding: 0 .4rem; }
.services-check { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(230px, 100%), 1fr)); gap: .5rem .9rem; }
.service-opt { display: flex; align-items: flex-start; gap: .5rem; font-size: .95rem; line-height: 1.4; cursor: pointer; }
.service-opt input { margin-top: .2rem; flex: none; }
.service-opt .muted { opacity: .7; }
.brand-short { display: none; }
@media (max-width: 760px) {
  .brand-full { display: none; }
  .brand-short { display: inline; }
}
a.brand { text-decoration: none; cursor: pointer; }
.stats { margin-top: clamp(2rem, 4vw, 3.5rem); }
